GNU/Linux >> Tutoriales Linux >  >> Linux

Solución de problemas de trabajos cron

Cron es un servicio para servidores Linux que ejecuta automáticamente comandos programados. Un trabajo cron puede ser una serie de comandos de shell, scripts u otros programas. Las tareas o trabajos cron pueden realizar una variedad de funciones y, una vez ejecutados, pueden enviar un mensaje de correo electrónico para informarle sobre su finalización o errores. Si recibe un error, hay muchas formas de solucionar el problema de la tarea cron. Utilice este artículo para obtener asistencia en la resolución de problemas o un tutorial sobre los conceptos básicos de los trabajos cron. Si desea obtener más información sobre cómo crear un trabajo cron, consulte nuestros tutoriales de la base de conocimientos sobre el tema.

Comprobación de configuraciones con Crontab

Desde la línea de comandos, puede revisar los trabajos cron programados enumerando el crontab para el usuario. Este comando envía el contenido del crontab del usuario a la terminal.

Como usuario, puede ejecutar:
crontab -l

Como root, puede ver el crontab de cualquier usuario especificando el nombre de usuario.
crontab -l -u username

Puede encontrar información detallada sobre cómo formatear los trabajos cron en /etc/crontab expediente. A continuación se muestra el ejemplo dentro de ese archivo. Cada asterisco puede ser reemplazado por un número o por su campo correspondiente. O puede dejar el asterisco en su lugar para representar todos los números posibles para esa posición. Por ejemplo, si se deja con todos los asteriscos, significa que el trabajo cron se ejecutará cada minuto, todo el tiempo.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# 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

Alteración de la dirección de correo electrónico de un cron

Una vez iniciado, un cron envía una notificación a una dirección de correo electrónico, configurada dentro de la línea MAILTO de crontab.

MAILTO="[email protected]"

Para editar el crontab, puede ejecutar los siguientes comandos como usuario:

crontab -e

O si inició sesión como raíz, puede escribir el nombre de usuario de cualquiera de sus usuarios para ver una tarea programada que hayan creado.

crontab -e -u username Estos abren el crontab del usuario en el editor predeterminado. Normalmente, el vim o nano comando abrirá el archivo. Tenga en cuenta que esto es similar a abrir cualquier otro archivo de texto donde guardará antes de cerrar.

La línea MAILTO indica a dónde debe enviarse el estado de ejecución de un cron. La dirección de envío normalmente será el nombre de usuario del creador de la tarea cron junto con el nombre de host del servidor. Entonces, la dirección del remitente de un correo electrónico seguiría esta sintaxis, [email protected]. Si no ve un correo electrónico de inmediato, puede ser una buena idea revisar su casilla de correo no deseado.

Crones silenciados

A veces, los trabajos cron están configurados para que no produzcan ningún resultado o silencien su salida, incluso si se configuran con una dirección MAILTO. Si ve un trabajo cron en la lista con cualquiera de los siguientes, es una señal de que la salida del cron ha sido silenciada. Estos envían cualquier salida al dispositivo nulo (el agujero negro en un servidor Linux). En casos como este, deberá eliminar la línea del script de trabajo cron para generar una salida.

&> /dev/null

2>&1 /dev/null Algunos trabajos cron están deshabilitados por completo. Estos tendrán un "#" delante del comando, lo que resultará en líneas ignoradas cuando se ejecuten. Quite el "#" para reactivar el trabajo cron.

Verificación del servicio Crond

Una vez que haya confirmado la configuración correcta, es hora de verificar que el sistema cron esté habilitado y funcionando. Los tres comandos siguientes se pueden usar para verificar si el crond (el servicio cron) se está ejecutando.

/etc/init.d/crond status

service crond status

systemctl status crond

Después de ejecutar cualquiera de los comandos anteriores, si encuentra que el servicio crond no se está ejecutando, puede iniciarlo con uno de los siguientes.

/etc/init.d/crond start

service crond start

systemctl start crond

/var/log/cron

Una vez que sepa que el cron está habilitado, no silenciado, y que el crond se está ejecutando, es hora de verificar el registro del cron, ubicado en la ruta de /var/log/cron .

cat /var/log/cron

Salida de ejemplo:

Oct 2 23:45:01 host CROND[3957]: (root) CMD (/usr/local/lp/apps/kernelupdate/lp-kernelupdate.pl > /dev/null 2>&1)
Oct 2 23:50:01 host CROND[4143]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 23:50:01 host CROND[4144]: (root) CMD (/usr/local/maldetect/maldet --mkpubpaths >> /dev/null 2>&1)
En el registro, verá si, cuándo y qué usuario ejecutó el cron. Si se inicia, verá la fecha y la hora de ejecución seguidas de corchetes del número de cron individual. Esta marca de tiempo no confirma que el script se ejecutó normalmente o en absoluto, solo indica cuándo el sistema cron ejecutó la tarea por última vez. Más allá de eso, es posible que deba investigar el propio script cron o las configuraciones de nivel de aplicación y sus respectivos registros para asegurarse de que el código se ejecuta correctamente.

Otros servicios de Cron

Este artículo es simplemente una descripción general del servicio crond principal, ya que hay muchos otros servicios de tareas cron. El sistema anacron es un servicio cron de uso común que configura trabajos diarios o por horas, e incluso se puede configurar para que se ejecute al reiniciar. Los registros para este tipo de tareas están dentro de /var/log/cron , y no son ejecutados por crond.

Otras tareas programadas, aunque también se conocen como trabajos cron, no se ejecutan desde el sistema crond. Estos trabajos cron a menudo se configuran dentro del código o la configuración de un sitio web. Para determinar si se ejecuta, deberá investigar otras configuraciones y registros con los que interactúa el script cron.

Al igual que con todos los servicios cron, los trabajos automatizados se pueden manipular para ejecutar numerosas tareas diarias, por lo que no es necesario. Las tareas de cron pueden fallar ocasionalmente incluso sin alterarlas o años, pero saber dónde buscar es la mitad de la batalla para solucionar un trabajo de cron.


Linux
  1. Trabajos cron / Tareas automatizadas

  2. Uso de at para trabajos cron de un solo uso en Linux

  3. Trabajos cron del clúster

  4. RCRON:configuración de alta disponibilidad de trabajos cron

  5. ¿Usando trabajos CRON para visitar la URL?

Cómo automatizar tareas con trabajos cron en Linux

Cómo ver o enumerar trabajos cron en Linux

Trabajos cron programados

Cron Jobs y Crontab en Linux explicados

¿Cómo configurar Cron Jobs en cPanel?

10 ejemplos útiles de cron para programar trabajos en Linux