Root crontab no se ejecuta


10

Por alguna razón, mi crontab raíz no parece estar ejecutándose.

Intentando reiniciar el dispositivo todas las noches a medianoche.

Debe ser el siguiente como root:

crontab -e

Luego añade:

0 0 * * * /sbin/shutdown -r now

Cuando pruebo usando algunos valores cerca de la hora actual, no pasa nada. Instalé NTP y me aseguré de que la zona horaria sea correcta. También estoy especificando el uso del reloj de 24 horas. Por ejemplo, para probar esta línea en este momento (5:35 p.m.) trato de ingresar lo siguiente:

36 17 * * * /sbin/shutdown -r now

He comprobado la hora con date -R. El tiempo para que se ejecute el crontab va y viene y el sistema no se reinicia. ¿Que me estoy perdiendo aqui?


Solo para asegurarte, estás cerrando el crontab después de editarlo, ¿verdad? Además, ¿cómo "corriste como root"? ¿Cuál es la salida de sudo crontab -l | grep -v '#'?
terdon

¿Por qué se etiqueta esto a debian ? Si se trata de Debian y no de Ubuntu, pregunte en Unix y Linux .
Muru

Porque debian está en el núcleo de Ubuntu, creo.
Atomiklan

Respuestas:


11

Tengo tres sugerencias de solución para ti.

  1. Invocar el crontab con crontab -e -u root

  2. Asegúrese de tener una línea vacía al final del archivo cronjob, lo que significa que cada línea termina con una nueva línea.

  3. Es posible que deba redirigir la salida a devnull: shutdown -r now > /dev/null

Aquí hay dos páginas web útiles para cronjobs:

Probador CRON

Generador CRON

También puedes manejar los cronjobs perfectamente con webmin .

Aparte de eso, tiene al menos dos formas más de reiniciar su computadora a medianoche.

Una es ejecutar el comando de apagado como un script automáticamente al iniciar sesión pero con un tiempo específico como parámetro en lugar de "ahora":

shutdown -r 00:00

Sin embargo, esto generará un mensaje de difusión del próximo cierre en cada inicio de sesión (puede que no sea algo malo en absoluto). Bueno, también puede hacer que esto se ejecute en el momento del arranque agregando el script en init.d, sin embargo, sigue produciendo el mensaje.

Otro es usar el atcomando:

at 0am

Ingrese el comando shutdown -r nowy guárdelo con ctrl + do haga un script para el comando y haga:

at -f restart_script.sh 0am

Espero que esto te ayude a obtener el resultado que deseas.


La solución fue dar salida a dev null. ¿Me pregunto porque?
Atomiklan

Esto se debe a que el trabajo cron tiene su propio entorno que no tiene un sistema de entrada / salida estándar que esperaría y el proceso falla porque está tratando de transmitir mensajes en una tubería de salida que falta. El trabajo de Cron es realmente muy diferente en comparación con ejecutar algún comando en la terminal como cualquier usuario. Me alegra saber que lo tienes funcionando después de todo.
Ahti Komu

0

Los trabajos de System Cron se enumeran en el archivo / etc / crontab. Por lo tanto, editar este archivo directamente lo ayudará a ejecutar el comando de reinicio como root.

por lo tanto,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

asegúrese de verificar el archivo de registro de Cron después de editar el crontab, ya que le informará si el cron se instaló correctamente.

Lo he probado y funcionó para mí. Reinicié mi sistema a las 8:23 p.m.

¡Buena suerte!


-3

36 17 * * * etc.

36 17 no es una forma de especificar el momento adecuado en su cron.

verifique a través del comando de fecha para ver si su sistema funciona en horario de EE. UU. o Europ

use 17 36 si es hora europ y si su sistema usa 24 horas o 5 36 si su sistema usa TIEMPO US y 12 horas


¡No es verdad! Cron no utiliza el formato de 12 horas y el formato siempre es mm hh DD MM WD.
Ahti Komu

Por favor, lea la publicación completa la próxima vez.
Atomiklan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.