Como configuro o Ubuntu para reinicializar todos os dias em um determinado momento?

10

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

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

Eu não consegui encontrar nada relacionado a isso no Google ou no AskUbuntu, e sou relativamente novo no Ubuntu em geral (acabei de comprar meu novo Raspberry Pi).

    
por Mathias Lykkegaard Lorenzen 31.07.2013 / 16:51

3 respostas

12

Edite as entradas do crontab usando o comando crontab -e (por padrão, isso irá editar o crontab atual dos usuários logados) 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ê quiser usar apenas:

0 3 * * * sudo reboot

como crontab, isso não funciona normalmente e você deve verificar este post para ver como você pode fazer isso funcionar.

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

0 3 * * * /sbin/reboot
    
por Radu Rădeanu 31.07.2013 / 17:01
1

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.

    
por roadmr 06.08.2013 / 22:41
0

Por que você quer - ou precisa para fazer isso? Embora seja muito 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 as atualizações do kernel.

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

    
por Jack Knight 06.08.2013 / 20:20