He intentado eliminar muchos de los errores comunes,
asegurando que las RUTA estén disponibles para cron
hay una línea final al final del archivo crontab
La zona horaria está configurada por:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
Corriendo date
en bash, obtengo:
Tue Sep 17 15:14:30 SGT 2013
Para verificar si cron está usando el mismo tiempo,
* * * * * date >> date.txt
está dando la misma salida de fecha en date.txt.
Este es el script que estoy tratando de ejecutar:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
Usando crontab -e
, la línea de abajo funciona,
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
Sin embargo, cuando probé algunos otros argumentos, esperando que se ejecute a las 2.50 p.m.
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
o
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
Ya no funcionará. Parece que hay un problema con mi argumento de hora. Tampoco se pudo encontrar nada en el /tmp/debug.log
archivo.
SOLUCIÓN:
Resultó que tengo que reiniciar el servicio cron después de hacer cambios en TZ.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
y confirme que date
muestra el tiempo esperado. Tenga en cuenta que la variable de entorno TZ desde dentro del crontab no podría afectar a la zona horaria que utiliza el daemon cron en sí, sino que se afectan a los procesos en marcha a través de cron, por lo que si se establece TZ en su crontab me gustaría sugerir al comentar a cabo temporalmente y establecer la hora usando la zona horaria del reloj del sistema (probablemente UTC si está arrancando Linux de manera única, pero puede ser la hora local).
~/event.sh
intentar/home/username/event.sh