Centos
為什麼 Centos 7.8 上的 crontab 會在生成重啟循環後重啟伺服器?
我想每月執行一個 CronJob 來重新啟動伺服器一次或兩次。我願意:
crontab -e
比:
51 9 5 * * /usr/sbin/reboot
這應該在每月 5 天的 9:51 重新啟動,它可以在伺服器重新啟動但 30 秒後重新啟動繼續生成無限循環。
為什麼會發生這種情況以及如何解決?我必須停止這種情況的唯一方法是刪除 CronJob,因此我無法每月設置一次自動重啟。
任何幫助將不勝感激。
更新 1:問題不是由 cron 時間太短引起的,即使我添加 +5 分鐘或延遲重啟仍然循環發生。
該問題是由於點擊不同步引起的。
我通過使用以下命令在重啟之前執行一個 cron 來解決:
/sbin/hwclock --systohc >/dev/null 2>&1
比
/usr/sbin/shutdown -r +5 >/dev/null 2>&1
作品。
如果沒有提到同步時鐘的命令,問題仍然存在。
我假設這是由於重新啟動太快,即 cron 守護程序再次啟動的時間仍然是 9:51,因此觸發了作業。
解決此問題的一種方法是延遲實際重啟
sleep
:51 9 5 * * sleep 60 && /usr/sbin/reboot
或者,
shutdown
延遲使用:51 9 5 * * /usr/sbin/shutdown -r
shutdown
預設情況下將操作延遲一分鐘,但您可以將+5
其用作進一步延遲的參數。在這種情況下使用shutdown
over的好處reboot
是在延遲期間將拒絕登錄(root 除外),並且使用者將收到即將重新啟動的警告。