La razón más frecuente por la que he visto que cron falla en un horario incorrectamente establecido. Se necesita práctica para especificar un trabajo programado para las 11:15 pm como en 15 23 * * *
lugar de * * 11 15 *
o 11 15 * * *
. El día de la semana para los trabajos después de la medianoche también se confunde MF es 2-6
después de la medianoche, no 1-5
. Las fechas específicas suelen ser un problema, ya que rara vez las usamos * * 3 1 *
no es el 3 de marzo. Si no está seguro, consulte sus cronogramas cron en línea en https://crontab.guru/ .
Si su trabajo con diferentes plataformas utilizando opciones no compatibles, como las 2/3
especificaciones de tiempo, también puede causar fallas. Esta es una opción muy útil pero no está disponible universalmente. También me he encontrado con problemas con listas como 1-5
o 1,3,5
.
El uso de rutas no calificadas también ha causado problemas. La ruta predeterminada suele ser /bin:/usr/bin
así que solo se ejecutarán los comandos estándar. Estos directorios generalmente no tienen el comando deseado. Esto también afecta a los scripts que utilizan comandos no estándar. También pueden faltar otras variables de entorno.
Clobbering un crontab existente me ha causado problemas por completo. Ahora cargo desde una copia de archivo. Esto se puede recuperar del crontab existente usando crontab -l
si se golpea. Mantengo la copia de crontab en ~ / bin. Se comenta en todo momento y termina con la línea # EOF
. Esto se recarga diariamente desde una entrada crontab como:
#! / usr / bin / crontab
# Recargar este crontab
# #
54 12 * * * $ {HOME} / bin / crontab
El comando de recarga anterior se basa en un crontab ejecutable con una ruta de acceso que ejecuta crontab. Algunos sistemas requieren la ejecución de crontab en el comando y la especificación del archivo. Si el directorio es compartido en red, a menudo lo uso crontab.$(hostname)
como el nombre del archivo. Esto eventualmente corregirá los casos en los que se carga el crontab incorrecto en el servidor incorrecto.
El uso del archivo proporciona una copia de seguridad de lo que debería ser el crontab, y permite que las ediciones temporales (la única vez que uso crontab -e
) se restituyan automáticamente. Hay encabezados disponibles que ayudan a obtener los parámetros de programación correctos. Los he agregado cuando los usuarios inexpertos estarían editando un crontab.
Raramente, me he encontrado con comandos que requieren la entrada del usuario. Estos fallan en crontab, aunque algunos funcionarán con la redirección de entrada.
crontab -e
para que el cron surta efecto. Por ejemplo, usando vim edito el archivo y lo uso:w
para escribirlo, pero el trabajo no se agrega a cron hasta que también salga. Así que no veré el trabajo hasta después:q
también.