Cron
在 Fexora Server 32 上,新的 cron 作業沒有使用 systemctl list-timers –all 顯示
我剛剛上線了一台新伺服器,並按照舊伺服器關於 cron 的方式對其進行了配置,但作業沒有執行。因此,我仔細檢查了配置,並檢查了目前的 cron 是否與舊的 cron 一樣。是的,看起來是這樣!
因為它是一個“systemd”類型的系統,所以我執行了適當的命令來查看它認為的計劃,這就是我得到的:
# systemctl list-timers --all NEXT LEFT LAST PASSED UNIT ACTIVATES Sun 2020-08-16 15:15:55 PDT 5min left Sun 2020-08-16 14:15:54 PDT 54min ago dnf-makecache.timer dnf-makecache.service Sun 2020-08-16 20:57:26 PDT 5h 47min left Sat 2020-08-15 20:57:26 PDT 18h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Mon 2020-08-17 00:00:00 PDT 8h left Mon 2020-08-10 00:00:00 PDT 6 days ago fstrim.timer fstrim.service Mon 2020-08-17 00:00:00 PDT 8h left Sun 2020-08-16 00:00:01 PDT 15h ago mlocate-updatedb.timer mlocate-updatedb.service Mon 2020-08-17 00:00:00 PDT 8h left Sun 2020-08-16 00:00:01 PDT 15h ago unbound-anchor.timer unbound-anchor.service 5 timers listed.
這一切都很好,但它沒有顯示我的具體補充——其中任何一個。所以,我做了我認為正確的事情,我跑了
systemctl reload crond.service
,得到了相同的輸出。所以我重新啟動並仍然得到相同的輸出!我的補充是:
- cron.d: local - 一組不在通常日程安排上的本地事務
- cron.daily:backup.daily logrotate mailbox_check
- cron.monthly; backup.monthly,和;
- cron.weekly; 每周備份
我已經完全準備好相信我在配置中做錯了什麼,或者也許還有其他問題說明為什麼我不認為他們跑了但他們跑了。但是我沒有看到
systemctl list-timer
s 輸出中的其他條目,這些條目是由已安裝的軟體包放在那裡的,這些軟體包在我開始使用我自己的添加之前就已經存在。也許問題是我對列表計時器輸出不熟悉?難道不應該也顯示這些其他工作嗎?
與 linux 中的許多事情一樣,做事情的方法不止一種。Cron 和 systemd timer 是做類似 cron 的事情的不同方式,就像 upstart 一樣,init.d 和 systemd 是 3 個不同的 init 系統。
許多 cron 作業歸特定使用者所有,因此您可以
crontab -l
作為特定使用者,也crontab -u username -l
可以以 root 身份檢查另一個使用者的 cron 作業。你也有每天,每週每月等等
雖然您可以深入研究每個文件,但它們是一系列文件,因此
所以
ls -la /etc/cron.*
會給你一個概述geek@heckate_router:~$ ls -la /etc/cron.* /etc/cron.d: total 28 drwxr-xr-x 2 root root 4096 Jan 22 2020 . drwxr-xr-x 117 root root 12288 Aug 12 06:54 .. -rw-r--r-- 1 root root 589 Jun 26 2018 mdadm -rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder -rw-r--r-- 1 root root 190 Jul 25 2018 popularity-contest /etc/cron.daily: total 76 drwxr-xr-x 2 root root 4096 Aug 12 06:54 . drwxr-xr-x 117 root root 12288 Aug 12 06:54 .. -rwxr-xr-x 1 root root 376 Nov 20 2017 apport ..... /etc/cron.hourly: total 20 drwxr-xr-x 2 root root 4096 Jul 25 2018 . drwxr-xr-x 117 root root 12288 Aug 12 06:54 .. -rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder /etc/cron.monthly: total 20 drwxr-xr-x 2 root root 4096 Nov 18 2018 . drwxr-xr-x 117 root root 12288 Aug 12 06:54 .. -rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder /etc/cron.weekly: total 28 drwxr-xr-x 2 root root 4096 May 30 2019 . drwxr-xr-x 117 root root 12288 Aug 12 06:54 .. -rwxr-xr-x 1 root root 723 Apr 7 2018 man-db -rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder -rwxr-xr-x 1 root root 211 Jun 27 2018 update-notifier-common
將這些轉換為systemd 計時器腳本超出了此答案的範圍,但它們與經典的 cron 作業不同。