Agregar archivo a /etc/cron.d no hace que se ejecute (ubuntu 10.04)

20

Si scp un archivo cron en /etc/cron.d no se ejecuta a menos que edite el archivo y cambie el comando. Entonces crond parece recoger el archivo cron.

¿Cómo puedo hacer que cron vuelva a cargar sus archivos cron en ubuntu 10.04? 'tocar' el archivo no funciona ni 'reiniciar cron' o 'recargar cron'.

Mi archivo cron está configurado para ejecutarse cada minuto y se registra en un archivo. Nada termina en el archivo de registro hasta que edito el comando, y no hay ninguna entrada en / var / log / syslog

Estoy perplejo.

Aquí está mi archivo cron guardado en /etc/cron.d/runscript (tenga en cuenta que termina con una nueva línea)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &
tom
fuente
3
Es bueno que haya incluido al usuario para ejecutar el trabajo como. Lo dejé fuera, que fue la causa de mis problemas.
Edward Anderson
1
Años más tarde no hay respuesta aceptada? hiciste que funcionara? También estoy atascado, y los problemas comunes no parecen ser el problema.
twigmac

Respuestas:

27

Acabo de encontrarme con este problema y, aunque no responderá a su caso específico, puede ayudar a otras personas a buscar en Google el mismo problema, ya que esta pregunta arroja resultados muy altos.

Había guardado un archivo en /etc/cron.d y estaba siendo ignorado. En mi caso fue porque le había dado a los archivos una extensión.

mytask.cronno funcionó pero le cambié el nombre mytasky funcionó bien.

Cualquier archivo con extensiones se ignora, así que asegúrese de que el archivo que guarde no tenga ninguna extensión.

Anigel
fuente
13
La página del manual cron (8) en Debian / Ubuntu documenta esto con bastante claridad en estos días: "El soporte para /etc/cron.d está incluido en el demonio cron [...] mismo. Los archivos en este directorio [...] deben cumplir según la misma convención de nomenclatura utilizada por run-parts (8): deben consistir únicamente en letras mayúsculas y minúsculas, dígitos, guiones bajos y guiones. Esto significa que no pueden contener puntos ".
Josip Rodin
15

Compruebe que el archivo que está copiando termina en a \n. Las entradas en crontabs que no tienen un \nfinal al final generalmente tienen problemas. La forma más fácil de garantizar esto es poner una línea en blanco después de su última entrada.

user9517 es compatible con GoFundMonica
fuente
1
Estaba a punto de editar mi pregunta para decir que termina con \ n
tom
1
Debian / Ubuntu cron advierte sobre esto en syslog, desde 3.0pl1-110 lanzado en 2010, cf. entrada del registro de cambios: "Registrar crontabs que faltan en la nueva línea antes de EOF en syslog. Esto solo es relevante para crontabs no instalados a través de crontab (1), es decir. /etc/cron.d/* y / etc / crontab. Cierra: # 76625"
Josip Rodin