Exemple de problème:
* 9 * * * echo 9
* 10 * * * echo 10
Ce qui précède enverra un e-mail à l'utilisateur toutes les minutes, mais toutes les réponses "9" auront lieu à 10h00 -> 10h59, tandis que les "10" arriveront à 11h00 -> 11h59. .
Exécuter un travail de
* * * * * /bin/date ; /bin/date -u
Renvoyé la date et l'heure attendues (correctes). cela était vrai à la fois pour l'heure UTC et l'heure locale (America / Denver). Modifier ce travail pour qu'il s'exécute toutes les minutes à une heure spécifique entraîne le décalage (les travaux doivent s'exécuter à 9, à 10, etc.).
Débogage actuel que j'ai terminé:
D'accord, c'est étrange. Peut-être que mon fichier de fuseau horaire est en quelque sorte foiré? Permet de vérifier que
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
J'ai vérifié l'horloge matérielle pour voir si elle est désactivée ou en désaccord avec mes paramètres locaux (exécuté en tant que root).
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
Semble être éteint d'une seconde, mais cela ne devrait pas faire en sorte que mes tâches cron soient interrompues pendant une heure, non?
Je suis également sûr de ce qui suit:
- Mon fuseau horaire a-t-il changé récemment? Non
- Avez-vous quand même essayé de corriger manuellement le fuseau horaire? Oui
- Avez-vous réinitialisé cron après avoir fixé le fuseau horaire? Oui
- Ai-je vérifié que le service cron a été redémarré? Oui
- Ai-je redémarré le service cron? Oui
- Êtes-vous vraiment sûr que cron a été redémarré? 100% sûr que Cron a été redémarré
Autres informations potentiellement pertinentes:
Exécuter Debian.
cat /etc/debian_version
8.6
Noyau actuel
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Debug mis à jour:
Ran 'hwclock --systohc', changements notables de comportement. Exécutez cette commande pour vérifier
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
Je ne peux pas exécuter 'cat / etc / sysconfig / clock' car ce fichier n'existe pas. L'exécution d'une commande find sous l'arborescence / etc / pour trouver 'horloge' confirme que je n'ai aucun fichier de ce nom là.
Vérifié pour voir si quelque chose que je connais a défini la variable CRON_TZ. Il n'est pas défini au niveau utilisateur, ni au niveau racine. Les avoir en écho cron ne donne aucune sortie.
CRON_TZ
env var est-il réglé n'importe où?hwclock --systohc
juste pour être complet et ajoutezcat /etc/sysconfig/clock
à la question?Réponses:
Un autre endroit où chercher: le ou les scripts de démarrage au démarrage
cron
ou le fichier crontab du système old school/etc/crontab
. Il est possible que la variable d'environnement TZ soit définie, disons,/etc/init.d/cronie
ou/lib/systemd/system/crond.service
, je ne suis pas sûr de ce que Debian utilise pour le système init.J'ai vu quelque chose comme ça quand j'ai essayé de faire
crond
tourner les choses toutes les deux heures:crond
a exécuté le script sur des heures impaires. Je soupçonnais, mais ne me suis jamais prouvé, que cela avait à voir avec une confusion d'heure d'été.la source
/etc/timezone
fichier. TZ =cat /etc/timezone
. Ce fichier semble être correct (exécuter une somme de contrôle juste pour être sûr que son identique à ce qu'il devrait être.). /lib/systemd/system/crond.service ne semble vouloir modifier aucune variable TZ. Je vais vérifier la suggestion * / 2 pour voir si je vois la même chose.