使用 crontab 計劃的重新啟動沒有繼續。為什麼會這樣呢?

使用 crontab 計劃的重新啟動沒有繼續。為什麼會這樣呢?

資訊

我在 Debian 10 上為 root 使用者提供了以下 crontab。

root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h  dom mon dow   command

30 3 * * * shutdown -r now

如果我運行uptimewho -b獲得上次手動重啟的結果(昨天下午 6 點左右)。

root@debian:~# uptime
 11:03:19 up 16:29,  1 user,  load average: 0.00, 0.01, 0.00
root@debian:~# who -b
         system boot  2020-12-26 18:34

我昨天晚上 7 點左右創建了 crontab,所以它肯定是在目標時間之前就位的。

問題

這可能行不通有什麼原因嗎?我可以以任何方式調試這個嗎?

答案1

檢查日誌以查看 cron 作業是否在指定時間執行。

在 Debian 上 cron 已登錄/var/log/syslog,查看是否有報告錯誤(如果 cron 作業已啟動)。

如果你這樣做的話,grep cron /var/log/syslog在 cron 應該重新啟動時是否記錄了任何內容?

另請檢查 cron 服務是否正在運行,如果運行,則systemctl status cron.service表示服務處於活動狀態並已啟用。 Cron 服務需要運行才能執行 cron 作業。

也可能是 cron 無法找到關閉指令的問題,請嘗試/usr/sbin/shutdown -r now在 cron 中使用。

對於 Debian 12 及更高版本

傳統的日誌文件systemd-journald在 Debian 12 中已被替換,因此您無法再/var/log/syslog使用工具行進行搜尋。grep這也會影響其他 GNU/Linux 發行版。但您可以journalctl改為使用並直接在那裡過濾日誌:

journalctl -u cron

相關內容