Les tâches Cron s'exécutent pendant 1 heure, en total désaccord avec les heures système

9

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.

jmurrayufo
la source
1
L' CRON_TZenv var est-il réglé n'importe où?
thrig
essayez hwclock --systohcjuste pour être complet et ajoutez cat /etc/sysconfig/clockà la question?
steve
J'ai ajouté les deux suggestions à mes informations, malheureusement aucune n'a apporté beaucoup de valeur. CRON_TZ n'est défini dans aucun environnement que je peux voir, la resynchronisation de la hwclock a donné les mêmes résultats qu'auparavant (vérifiée de toute façon pour voir si elle a changé, ce n'est pas le cas) et je n'ai pas de '/ etc / sysconfig / clock ' fichier.
jmurrayufo

Réponses:

1

Un autre endroit où chercher: le ou les scripts de démarrage au démarrage cronou 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/cronieou /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 crondtourner les choses toutes les deux heures:

0 */2 * * * /opt/dbms/rainstor/archiving/ama_term

cronda 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é.

Bruce Ediger
la source
/etc/init.d/cron récupère le /etc/timezonefichier. 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.
jmurrayufo