GNU/Linux >> Tutoriales Linux >  >> Linux

Crontab Log:cómo registrar la salida de mi secuencia de comandos Cron

Pregunta :Creé un script de shell backup.sh y lo agregué a mi crontab para ejecutarlo diariamente. ¿Cómo verifico si el trabajo del script cron de copia de seguridad se ejecutó correctamente? Además, tengo varias declaraciones de eco dentro de mi script de shell backup.sh. ¿Cómo guardo el resultado de mi secuencia de comandos en un archivo de registro cuando se ejecuta como un trabajo cron?

Respuesta :Digamos que ha agregado backup.sh a su crontab como se muestra a continuación para ejecutarlo a la medianoche todos los días.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh

Para verificar si este trabajo se ejecutó con éxito o no, verifique el archivo /var/log/cron, que contiene información sobre todos los trabajos cron que se ejecutan en su sistema. Como puede ver en el siguiente resultado, el trabajo cron de John se ejecutó con éxito.

$ tail /var/log/cron
Oct  8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct  8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct  8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)

El registro de cron contiene la siguiente información:

  • Marca de tiempo:la fecha y la hora en que se ejecutó el trabajo cron
  • Hostname:el nombre de host del servidor (por ejemplo, dev-db)
  • El nombre de cron deamon y el PID. Por ejemplo, crond[20399]
  • Nombre de usuario:el nombre de usuario con el que se ejecutó este trabajo cron. Por ejemplo, Juan.
  • CMD:todo lo que sigue a esto es el comando real que se ejecutó en ese momento.

Si hay declaraciones de eco dentro de backup.sh, es posible que desee registrarlas en un archivo. En general, si el script cron backup.sh arroja algún resultado (incluidos los errores), es posible que desee registrarlos en un archivo de registro. Para hacer esto, modifique la entrada crontab y agregue la redirección de salida y error como se muestra a continuación.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1

En lo anterior:

  • > /home/john/logs/backup.log indica que la salida estándar del script backup.sh se redirigirá al archivo backup.log.
  • 2>&1 indica que el error estándar (2>) se redirige al mismo descriptor de archivo al que apunta la salida estándar (&1).
  • Entonces, tanto la salida estándar como el error se redirigirán a /home/john/logs/backup.log

Linux
  1. Cómo usar cron en Linux

  2. ¿Dónde está el registro cron / crontab? / ¿Cómo habilitar el Cron Log?

  3. ¿Cómo funcionan las partes internas del demonio Cron?

  4. Cómo ejecutar un trabajo cron en días específicos de la semana

  5. ¿Cómo agregar la salida a un archivo?

Cómo automatizar tareas en Linux usando Crontab

¿Cómo configurar el trabajo cron para ejecutar un script PHP en cPanel?

Cómo comprobar si se ha ejecutado un trabajo cron (registro crontab)

¿Cómo creo un crontab a través de un script?

¿Cómo redirigir la salida de system() a un archivo?

¿Cómo copiar la salida del terminal?