Servidor diário reiniciar cron?

14

Eu quero criar um trabalho cron que execute daiy no horário designado e reinicie o servidor ubuntu.

Eu tento adicionar rebootapenas no cron, mas não está funcionando, enquanto funciona quando tento executá-lo a partir da CLI.

Por favor, informe, que comando devo adicionar no cron, para que ele reinicie o servidor diariamente em um horário específico.

Prashant Kumar
fonte
Posso perguntar por que você precisa reiniciar um servidor diariamente? Isso é uma indicação para mim de que você está fazendo coisas erradas. Provavelmente.
precisa saber é o seguinte
2
@gertvdijk eu me deparei com situações em que você precisa reiniciar uma máquina regularmente. Software proprietário que obtém um vazamento de memória ruim após ~ 30 horas de tempo de atividade, coisas assim.
Jrg
1
Servidores de jogos (tosse) O Minecraft (tosse) geralmente se infiltra ou de alguma forma se envolve em centenas de processos.
Kaz Wolfe
esta publicação também é útil askubuntu.com/questions/327015/…
kevin
Se o problema é que algum aplicativo está vazando memória ao longo do tempo, uma solução melhor seria apenas reiniciar esse serviço de aplicativo.
Soren A

Respostas:

26

Você precisa executar o seguinte comando:

/sbin/shutdown -r now

com pirviliges de raiz. A maneira de fazer isso é usar o crontab do root, não o seu usuário crontab. A sudoantes do comando crontab usual faz isso:

sudo crontab -e

Dica: Você pode alternar o editor padrão do shell para coisas como crontabe visudocom sudo update-alternatives --config editore, em seguida, selecionar o editor de sua escolha.

Editando o crontab, você deve adicionar a seguinte linha ao seu arquivo:

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command  

@daily root /sbin/shutdown -r now

O "@daily" aqui é um atalho para todos os dias à meia-noite (equivalente a "0 0 * * *"). A propósito - por que você deseja uma reinicialização diária?

EDIT - consulte https://help.ubuntu.com/community/CronHowto para o seguinte: "Os comandos do Crontab geralmente são armazenados no arquivo crontab pertencente à sua conta de usuário (e executados com o nível de permissão do usuário). Se desejar regularmente, execute um comando que requer permissões administrativas, edite o arquivo raiz crontab: sudo crontab -e "

EDIT - obrigado a @charlesbridge por seu comentário - resposta editada para incluir o caminho completo

Clive van Hilten
fonte
2
Com o cron, é sempre mais seguro usar caminhos completos:/sbin/shutdown -r
charlesbridge
1
o que a raiz faz entre a configuração do dia e o comando? não deveria ser apenas @daily / sbin / shutdown -r agora no cronfile dos usuários root? TIA
Ominus
3
O seguinte comando tem o mesmo efeito: /sbin/reboot.
Marc Vanhoomissen