Cron
crontab 未執行 /etc/crontab 中列出的命令
所以我有一些
nfexpire
crontab 打算執行的命令,列在/etc/crontab
. 他們已經工作了一段時間,但最近他們完全停止了執行。其他所有作業都執行,而不是/etc/crontab
. 我已經通過 exectuing 檢查了 crontab 守護程序是否正在執行systemctl status crond
我已經檢查
/var/log/cron
並/var/log/messages
執行journalctl
以尋找任何錯誤,但沒有找到任何東西。我已經確保這些命令可以通過終端執行,所以問題出在 crontab 中。
/etc/crontab
文件:SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 30 03 01 * * nfexpire -e "something" 30 03 01 * * nfexpire -e "something" 30 03 01 * * nfexpire -e "something" 30 03 01 * * nfexpire -e "something" 30 03 01 * * nfexpire -e "something" 30 03 01 * * nfexpire -e "something"
哦,我已經確保最後有一個換行符。
可能是權限問題?
-rw-r--r--. 1 root root 891 Feb 6 2020 /etc/crontab
但是,它在這些設置下執行了幾個月沒有任何問題,所以我不知道是否應該更改其中的任何一個。
附加資訊
系統:Centos 7
核心:3.10.0-1160.el7.x86_64
這是語法問題。在此文件中,您應該添加其他欄位,使用者名:
30 03 01 * * username nfexpire -e "something"
然後,cron 作業將作為
username
.其他注意事項。
- 有沒有同時開始的所有工作?不是很好。在這種情況下,最好製作一個腳本來執行它們並擁有一個單一的工作。
- 最好不要編輯 /etc/crontab 。對 root 擁有的作業使用 drop-directories
/etc/cron.d
和其他/etc/cron.*
(將可執行腳本放在那裡),這些作業的開始時間不是很重要,唯一重要的是作業的周期性(每天、每周等)。為使用者執行的作業使用專用的使用者 crontabcrontab -e -u username
:. 在那裡您省略了“使用者名”欄位,因為該作業將在此特定 crontab 所屬的任何人下執行。無論如何,這種方式沒有系統更新會干擾您的 crontab 條目。- 考慮使用
systemd
計時器。