Cron

crontab 未執行 /etc/crontab 中列出的命令

  • August 10, 2022

所以我有一些nfexpirecrontab 打算執行的命令,列在/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.*(將可執行腳本放在那裡),這些作業的開始時間不是很重要,唯一重要的是作業的周期性(每天、每周等)。為使用者執行的作業使用專用的使用者 crontab crontab -e -u username:. 在那裡您省略了“使用者名”欄位,因為該作業將在此特定 crontab 所屬的任何人下執行。無論如何,這種方式沒有系統更新會干擾您的 crontab 條目。
  • 考慮使用systemd計時器。

引用自:https://unix.stackexchange.com/questions/713153