Observe que colocar sua senha de texto não criptografado em um arquivo de texto não é uma boa ideia, por isso é melhor que esse trabalho seja executado como root desde o início. Geralmente, em vez de editar o crontab do root por meio do comando crontab
, o que deixa as entradas em /var/spool/cron/crontabs
, um local um pouco crítico, prefiro digitá-las explicitamente em /etc/cron.d
. As entradas no cron.d são executadas como entradas crontab do sistema, são tratadas como arquivos de configuração para que possam sobreviver a reinicializações, atualizações e upgrades do sistema, e você pode especificar explicitamente o usuário em execução:
echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am
Se você não precisa de um horário específico, mas apenas deseja que o sistema seja reinicializado uma vez ao dia, adicione um executável ou script em /etc/cron.daily
e ele será executado automaticamente em um horário predeterminado (sistema 6:25 AM hora por padrão):
echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me
Observe que, em vez de apenas reinicializar o sistema sem aviso, estou definindo um aviso de 5 minutos, portanto, se alguém estiver logado, ele terá a chance de salvar o trabalho ou até mesmo interromper o desligamento com sudo shutdown -c
, em vez de ter o sistema arrancado por baixo deles. Você pode ajustá-los de acordo, se quiser dar um aviso mais amplo (por exemplo, use shutdown -h 60
e execute o comando às 2:00 da manhã e fornecerá aos usuários um generoso aviso de 1 hora).
Isto é baseado na minha experiência passada; em algum momento você irá estar logado trabalhando quando a entrada crontab for executada, e se ela for reinicializada sem aviso você será um panda muito triste.