/etc/crontab 什麼時候檢查?
我在 cron 手冊頁上閱讀:
Cron 搜尋
/var/spool/cron
以帳戶命名的 crontab 文件/etc/passwd
;找到的 crontab 被載入到記憶體中。Cron 還搜尋 目錄/etc/anacrontab
中的任何文件,這些文件/etc/cron.d
具有不同的格式(請參閱 參考資料crontab(5)
)。Cron 檢查所有儲存的 crontab 並檢查每個作業以查看它是否需要在目前分鐘內執行然後它說:
/etc/crontab
系統 crontab。現在該文件預設為空。最初它通常用於執行每日、每週、每月的作業。預設情況下,這些作業現在通過讀取/etc/anacrontab
配置文件的 anacron 執行。有關anacrontab(5)
更多詳細資訊,請參閱。好的,我很清楚如果
/etc/crontab
為空會發生什麼。我的問題是:如果
/etc/crontab
存在的話,什麼時候讀?注意:手冊頁來自 CentOS 8。
答案取決於
cron
您感興趣的確切變體。在 Debian 中,
cron
守護程序被記錄為/etc/crontab
在必要時重新載入:就像,監視目錄中
/etc/crontab
的文件的更改。/etc/cron.d
實際上,主循環
cron
在每次迭代時都會重新載入所有數據庫(只有在文件發生更改時才會載入)。在 Fedora 和衍生產品(包括 CentOS)中,
cron
行為類似,inotify
如果可用,還需要額外的幫助。
如果您有一個完全記錄文件的
cron
實現crontab
,那麼您必須使用歷史UNIX
變體。30 多年來,該cron
實用程序的唯一有效介面是通過crontab
命令。這就是為什麼
POSIX
根本不記錄該cron
實用程序的原因,因為它是特定於實現的細節。因此,請確保行為正確,並且僅用於
crontab -l
列出 crontab 或crontab -e
編輯 crontab。如果您編輯 crontab,該
crontab
命令會將 crontab 文件儲存在系統特定位置,並通知cron
實用程序 crontab 已更改,需要重新讀取。