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