我正在嘗試設定 cron 作業來每天重新啟動裝置。如果由於某種原因重新啟動確實掛起,則可以安全回調 SysRq 重置(問題是 SSH 被終止並且設備永遠不會重新啟動,因此它會丟失並且需要昂貴的人工幹預才能重新啟動)。
曾經運行過一段時間的腳本:
5 5 * * * root /sbin/reboot -f; sleep 30; /bin/echo `date -u +'\%Y-\%m-\%dT\%H:\%M:\%SZ'` >> /var/log/player-reboot.error.log; echo 1 > /proc/sys/kernel/sysrq; sync; echo b > /proc/sysrq-trigger
然而,這是相當殘酷的(硬重啟-f),我們的一些設備最近沒有恢復(每天有數千個)。
不確定什麼掛起(看起來文件從未被寫入,所以我想說要么是重新啟動本身,要么是 echo 掛起?
一直希望使用&符號&永遠不會「鎖定」並確保最終會發生正確的重置,但它似乎根本不起作用(不再重新啟動):
5 5 * * * root /sbin/shutdown -r +2 &; sleep 240; /bin/echo `date -u +'\%Y-\%m-\%dT\%H:\%M:\%SZ'` >> /var/log/player-reboot.error.log &; echo 1 > /proc/sys/kernel/sysrq; sleep 1; echo b > /proc/sysrq-trigger
我可以在 cron 腳本中使用 & 符號嗎?您知道另一種更聰明的方法來達到預期的結果嗎?謝謝!