Como faço para configurar o Ubuntu para reiniciar todos os dias em um determinado momento?

11

Usando o terminal ou um arquivo bash, como posso configurar o Ubuntu para reiniciar todos os dias às (por exemplo) 3 da manhã?

Em outras palavras, desejo agendar uma reinicialização automática pelo terminal.

Não consegui encontrar nada relacionado a isso no Google ou no AskUbuntu, e sou bastante novo no Ubuntu em geral (acabei de adquirir meu novo Raspberry Pi).

Mathias Lykkegaard Lorenzen
fonte

Respostas:

13

Edite as entradas do crontab usando o crontab -ecomando (por padrão, isso editará o usuário atual do crontab) e adicione a seguinte linha:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Salve o arquivo e verifique a nova entrada do crontab com crontab -l.

Se você deseja usar apenas:

0 3 * * * sudo reboot

como crontab, isso não funciona normalmente e você deve verificar esta postagem para ver como você pode fazê-la funcionar.

Ou, simplesmente adicione o crontab ao arquivo crontab do usuário root, oferecendo o caminho completo para o rebootcomando usando sudo crontab -e:

0 3 * * * /sbin/reboot
Radu Rădeanu
fonte
Você não poderia colocar isso em crontab da raiz e não têm muito se preocupar com oecho $PASSWD
Dan
Eu não sabia disso. Isso é um bug do cron ou é normal? Quero dizer, se você editar o crontab como root, o trabalho será executado apenas se você estiver logado como root? Acho que isso está errado. (ou deveria ser).
31413 NickTux
@ RaduRădeanu Isso não é verdade. Os cronjobs de raiz serão executados sem estar logado como root.
31513 OrangeTux
@OrangeTux Você tem razão, desculpe, eu disse isso porque testei sem fornecer o caminho completo para o rebootcomando. Caso contrário, não funcionará. Veja minhas novas edições.
Radu Rădeanu 31/07
@ Nikik Eu estava errado, veja o comentário acima .
Radu Rădeanu 31/07
1

Observe que colocar sua senha de texto não criptografado em um arquivo de texto não é uma boa ideia; portanto, é melhor executar esse trabalho como root desde o início. Normalmente, em vez de editar o crontab da raiz por meio do crontabcomando, que deixa as entradas em /var/spool/cron/crontabsum local um tanto enigmático, prefiro inseri-las explicitamente /etc/cron.d. As entradas no cron.d são executadas como entradas do sistema crontab, 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, apenas deseja que o sistema seja reiniciado uma vez por dia, adicione um executável ou script /etc/cron.dailye ele será executado automaticamente em um horário predeterminado (06:25, horário do sistema 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 reiniciar o sistema sem aviso prévio, estou definindo um aviso de 5 minutos; portanto, se alguém estiver conectado, poderá salvar seu trabalho ou até interromper o desligamento sudo shutdown -c, em vez de interromper o sistema fora debaixo deles. Você pode ajustá-los adequadamente, se desejar dar um aviso mais amplo (por exemplo, use shutdown -h 60e execute o comando às 2:00 da manhã e você dará aos usuários um aviso generoso de 1 hora).

Isso é baseado na minha experiência passada; em algum momento você estará logado trabalhando quando a entrada crontab for executada e, se ela apenas reiniciar sem aviso, você será um panda muito triste.

roadmr
fonte
-1

Por que você quer - ou precisa fazer isso? Embora seja bastante simples de fazer, há quase certamente uma solução melhor com o Linux que não envolve uma reinicialização. Ao contrário do Windows, os sistemas operacionais baseados em Linux não exigem reinicializações para quase nada, exceto atualizações do kernel.

Se você explica o que está tentando alcançar, provavelmente podemos ajudá-lo melhor.

Jack Knight
fonte
3
Ele quer reiniciar o computador todas as noites para que ele irá reiniciar
Michael Butler