Ich versuche, einen Cron-Job einzurichten, um Geräte täglich neu zu starten. Mit einem sicheren Rückruf zu einem SysRq-Reset, falls der Neustart aus irgendeinem Grund hängen bleibt (das Problem besteht darin, dass SSH beendet wird und das Gerät nie neu startet, sodass es verloren geht und ein kostspieliges menschliches Eingreifen zum Neustart erforderlich ist).
Das Skript, das eine Zeit lang funktioniert hat:
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
Es ist jedoch ziemlich brutal (Hard Reboot -f) und einige unserer Geräte haben sich in letzter Zeit nicht erholt (einige Tausend jeden Tag).
Nicht sicher, was hängt (sieht aus, als wäre die Datei nie geschrieben worden, also würde ich sagen, entweder liegt es am Neustart selbst oder am Echo, das hängt?)
Ich wollte das Et-Zeichen & verwenden, um niemals zu „sperren“ und sicherzugehen, dass irgendwann ein ordnungsgemäßer Reset erfolgt, aber das scheint überhaupt nicht zu funktionieren (keine Neustarts mehr):
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
Kann ich das Et-Zeichen in einem Cron-Skript verwenden? Kennen Sie einen anderen, intelligenteren Weg, um die gewünschten Ergebnisse zu erzielen? Danke!