¿Servidor diario reiniciar cron?

14

Quiero crear un trabajo cron que se ejecute diariamente en el tiempo asignado y reinicie el servidor ubuntu.

Intento agregar rebootsolo en cron, pero no funciona, mientras que funciona cuando intento ejecutarlo desde la CLI.

Por favor avise, qué comando debo agregar en cron, para que reinicie el servidor diariamente a una hora específica.

Prashant Kumar
fuente
¿Puedo preguntarle por qué necesita reiniciar un servidor diariamente? Esto es una indicación para mí de que estás haciendo las cosas mal. Probablemente.
gertvdijk
2
@gertvdijk Me he encontrado con situaciones en las que necesitas reiniciar una máquina regularmente. Software propietario que tiene una pérdida de memoria incorrecta después de ~ 30 horas de tiempo de actividad, cosas así.
jrg
1
Servidores de juegos (tos) Minecraft (tos) a menudo se ralentiza o de alguna manera se bifurca en cientos de procesos.
Kaz Wolfe
esta publicación también es útil askubuntu.com/questions/327015/…
kevin
Si el problema es que algunas aplicaciones pierden memoria con el tiempo, una mejor solución sería simplemente reiniciar el servicio de la aplicación.
Soren A

Respuestas:

26

Necesita ejecutar el siguiente comando:

/sbin/shutdown -r now

con pirviliges de raíz. La forma de hacerlo es usar el crontab de root, no el crontab de su usuario. A sudoantes del comando crontab habitual hace eso:

sudo crontab -e

Consejo: Puede cambiar el editor estándar de la shell para cosas como crontaby visudocon sudo update-alternatives --config editory luego seleccionar el editor que prefiera.

Al editar el crontab, debe agregar la siguiente línea a su archivo:

# 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

El "@daily" aquí es un acceso directo para todos los días a la medianoche (equivalente a "0 0 * * *"). Por cierto, ¿por qué quieres un reinicio diario?

EDITAR: consulte https://help.ubuntu.com/community/CronHowto para lo siguiente: "Los comandos de Crontab generalmente se almacenan en el archivo crontab que pertenece a su cuenta de usuario (y se ejecutan con el nivel de permisos de su usuario). Si desea ejecute regularmente un comando que requiera permisos administrativos, edite el archivo crontab raíz: sudo crontab -e "

EDITAR - gracias a @charlesbridge por su comentario - respuesta editada para incluir la ruta completa

Clive van Hilten
fuente
2
Con cron, siempre es más seguro usar rutas completas:/sbin/shutdown -r
charlesbridge
1
¿Cuál es la raíz entre la configuración del día y el comando? ¿No debería ser simplemente @daily / sbin / shutdown -r ahora en el archivo de usuario raíz? TIA
Ominus
3
El siguiente comando tiene el mismo efecto: /sbin/reboot.
Marc Vanhoomissen