安全重启 cron 作业并回退 SysRq 重置问题

安全重启 cron 作业并回退 SysRq 重置问题

我正在尝试设置一个 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 脚本中使用 & 符号吗?您知道另一种更聪明的方法来达到预期的结果吗?谢谢!

相关内容