Beispiel für ein Problem:
* 9 * * * echo 9
* 10 * * * echo 10
Das oben Gesagte löst jede Minute eine E-Mail an den Benutzer aus, aber alle "9" -Antworten erfolgen um 10:00 Uhr -> 10:59 Uhr, während die "10" um 11:00 Uhr -> 11:59 Uhr eingehen .
Einen Job von ausführen
* * * * * /bin/date ; /bin/date -u
Das erwartete (korrekte) Datum und die Uhrzeit wurden zurückgegeben. Dies galt sowohl für UTC als auch für die Ortszeit (Amerika / Denver). Wenn Sie diesen Job so ändern, dass er jede Minute zu einer bestimmten Stunde ausgeführt wird, wird der Offset angezeigt (Jobs, die mit 9 ausgeführt werden sollen, werden um 10 ausgeführt usw. usw.).
Aktuelles Debug, das ich abgeschlossen habe:
Okay, das ist seltsam. Vielleicht ist meine Zeitzonendatei irgendwie durcheinander? Lassen Sie uns das überprüfen
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
Ich habe die Hardware-Uhr überprüft, um festzustellen, ob diese deaktiviert ist oder nicht mit meinen lokalen Einstellungen übereinstimmt (als Root ausführen).
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
Scheint eine Sekunde aus zu sein, aber das sollte nicht dazu führen, dass meine Cron-Jobs eine volle Stunde außerhalb des Zeitplans laufen, oder?
Ich bin mir auch über Folgendes sicher:
- Hat sich meine Zeitzone kürzlich geändert? Nein
- Haben Sie trotzdem versucht, die Zeitzone manuell zu korrigieren? Ja
- Haben Sie cron nach dem Festlegen der Zeitzone zurückgesetzt? Ja
- Habe ich sichergestellt, dass der Cron-Dienst neu gestartet wurde? Ja
- Habe ich den Cron-Service neu gestartet? Ja
- Sind Sie wirklich sicher, dass cron neu gestartet wurde? 100% sicher, dass Cron neu gestartet wurde
Andere potenziell relevante Informationen:
Debian ausführen.
cat /etc/debian_version
8.6
Aktueller Kernel
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Aktualisiertes Debug:
Ran 'hwclock --systohc', keine merklichen Verhaltensänderungen. Führen Sie diesen Befehl aus, um zu überprüfen
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
Ich kann 'cat / etc / sysconfig / clock' nicht ausführen, da diese Datei nicht existiert. Das Ausführen eines Suchbefehls unter / etc / tree zum Suchen von 'clock' bestätigt, dass ich dort keine Datei mit diesem Namen habe.
Überprüft, ob irgendetwas, das mir bekannt ist, die Variable CRON_TZ gesetzt hat. Es wird weder auf Benutzerebene noch auf Roots-Ebene festgelegt. Wenn Cron sie wiedergibt, wird keine Ausgabe ausgegeben.
CRON_TZ
env var irgendwo eingestellt?hwclock --systohc
nur der Vollständigkeit halber versuchen undcat /etc/sysconfig/clock
zur Frage hinzufügen ?Antworten:
Ein weiterer Ort, an dem Sie suchen müssen: das Start-beim-Start-Skript
cron
oder die Crontab-Datei des alten Schulsystems/etc/crontab
. Es ist möglich, dass die TZ-Umgebungsvariable beispielsweise festgelegt wird,/etc/init.d/cronie
oder/lib/systemd/system/crond.service
ich bin nicht sicher, was Debian für das Init-System verwendet.Ich habe so etwas gesehen, als ich versuchte,
crond
alle zwei Stunden Dinge laufen zu lassen:crond
führte das Skript zu ungeraden Stunden aus. Ich vermutete, bewies mir aber nie, dass es mit einer Verwirrung der Sommerzeit zu tun hatte.quelle
/etc/timezone
Datei. TZ =cat /etc/timezone
. Diese Datei scheint korrekt zu sein (eine Prüfsumme wurde ausgeführt, um doppelt so sicher zu sein, dass sie mit der identischen identisch ist). /lib/systemd/system/crond.service scheint keine TZ-Variablen ändern zu wollen. Ich werde den * / 2-Vorschlag überprüfen, um festzustellen, ob ich dasselbe sehe.