我使用的是 Ubuntu 14.04,而 cron 守護程式正在執行:
# ps ax | grep cron
822 ? Ss 0:00 cron
但它沒有執行任何作業。我之前收到過/var/log/syslog
這樣的條目:
2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
但現在沒有與 cron 相關的條目。我也收到這樣的條目/var/log/auth.log
:
2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root
但同樣,現在沒有與 cron 相關的條目。
我不知道有什麼改變。我嘗試過重新啟動 cron:
# service cron restart
cron stop/waiting
cron start/running, process 24907
我嘗試使用crontab -e
新增一個* * * * * date >> /tmp/somefile
有效的 cron 作業,但它在 中安裝了一個新的 crontab /var/spool/cron/crontabs/root
,而我希望 cron 使用 中的檔案/etc/crontab
。
是否有任何我可以使用的偵錯選項,或者某個地方的日誌可能會給出我可以調查的錯誤訊息?
答案1
為了進一步幫助您調試工作中的問題cron
,您應該檢查您的郵件。這通常儲存在類似/var/mail/<user_name>
或 的文件中/var/spool/mail/<user_name>
。
這兩個文件實際上是我的 Debian 機器上的硬鏈接,但我不知道這是否是標準的。
解釋
從cron(8)
頁面:
執行命令時,任何輸出都會郵寄給 crontab 的所有者(或發送給 crontab 中 MAILTO 環境變數中指定的用戶,如果存在的話)。
答案2
您已經表明 root 沒有 crontab,是否有任何使用者有 crontab 條目?如果您只使用root,那麼您也可以檢查以下目錄: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly
在我的機器(centos 6.4)上,我的 /etc/cron.daily/ 目錄中有 mlocate.cron ,並且 cron 每天運行該腳本。
所以我認為你只需要新增 cron 作業。
答案3
我透過將權限更改/etc/crontab
為以下內容解決了這個問題:
-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab
以前是-rw-rw-r--
。這是唯一的改變。以前沒用,現在可以了。仍然不知道為什麼。
答案4
我也遇到了類似的問題,但在將 root 指定為 上的使用者後/etc/crontab
,cron 作業開始觸發。
這可能是由於 所crontab -e
遵循的語法與/etc/crontab
.