Cron

在 Fexora Server 32 上,新的 cron 作業沒有使用 systemctl list-timers –all 顯示

  • August 17, 2020

我剛剛上線了一台新伺服器,並按照舊伺服器關於 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,得到了相同的輸出。所以我重新啟動並仍然得到相同的輸出!

我的補充是:

  1. cron.d: local - 一組不在通常日程安排上的本地事務
  2. cron.daily:backup.daily logrotate mailbox_check
  3. cron.monthly; backup.monthly,和;
  4. cron.weekly; 每周備份

我已經完全準備好相信我在配置中做錯了什麼,或者也許還有其他問題說明為什麼我不認為他們跑了但他們跑了。但是我沒有看到systemctl list-timers 輸出中的其他條目,這些條目是由已安裝的軟體包放在那裡的,這些軟體包在我開始使用我自己的添加之前就已經存在。

也許問題是我對列表計時器輸出不熟悉?難道不應該也顯示這些其他工作嗎?

與 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 作業不同。

引用自:https://serverfault.com/questions/1030362