Estou tentando configurar um cron job para reinicializar dispositivos diariamente. Com um retorno de chamada seguro para uma reinicialização SysRq se, por algum motivo, a reinicialização for interrompida (sendo que o SSH é interrompido e o dispositivo nunca é reinicializado, por isso é perdido e requer intervenção humana dispendiosa para ser reiniciado).
O script que costumava funcionar por um tempo:
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
No entanto, é bastante brutal (hard reboot -f) e alguns de nossos dispositivos não se recuperaram recentemente (alguns milhares por dia).
Não sei o que trava (parece que o arquivo nunca é escrito, então eu diria que a reinicialização em si ou o eco está travado?
Pretendia usar o e comercial & para nunca "bloquear" e certifique-se de que uma redefinição adequada irá acontecer eventualmente, no entanto, parece não funcionar de todo (não mais reinicializações):
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
Posso usar o "e" comercial em um script do cron? Você conhece outra maneira mais inteligente de alcançar os resultados desejados? Obrigado!