J'ai essayé d'éliminer bon nombre des erreurs courantes,
s'assurer que les CHEMINS sont disponibles pour cron
il y a une fin à la fin du fichier crontab
le fuseau horaire est défini par:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
En cours d'exécution date
en bash, je reçois:
Tue Sep 17 15:14:30 SGT 2013
Afin de vérifier si cron utilise en même temps,
* * * * * date >> date.txt
donne la même sortie de date dans date.txt.
Voici le script que j'essaie d'exécuter:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
En utilisant crontab -e
, la ligne ci-dessous fonctionne,
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
Cependant, lorsque j'ai essayé d'autres arguments, en espérant qu'il fonctionnerait à 14 h 50:
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
ou
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
cela ne fonctionnera plus. On dirait qu'il y a un problème avec mon argument d'heure. Rien n'a pu non plus être trouvé dans le /tmp/debug.log
fichier.
SOLUTION:
Il s'est avéré que je dois redémarrer le service cron après avoir apporté des modifications à TZ.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
et confirmez qu'elle date
indique l'heure prévue. Notez que la définition de la variable d'environnement TZ à l' intérieur du crontab pourrait ne pas affecter le fuseau horaire tel qu'il est utilisé par le cron démon lui - même, mais il aura une incidence sur les processus lancés par cron, donc si vous définissez TZ dans votre crontab je vous suggère de le commenter sur temporairement et en définissant l'heure à l'aide du fuseau horaire de l'horloge système (probablement UTC si vous démarrez Linux, mais peut être l'heure locale) à la place.
~/event.sh
essayer avec/home/username/event.sh