Wie man mit Sommerzeit in Cron-Jobs umgeht

643
user1334007

Ich habe einen Cron-Job auf einem amazon ec2-Computer (Ubuntu 16.04), der um 2:00 Uhr mittags laufen soll.

Der Cron-Job wird mit UTC-Zeit geplant. Da Central Time derzeit UTC-5 ist (derzeit ist Sommerzeit), sieht es so aus:

0 7 * * * /home/ubuntu/runetl.sh 

Es läuft also um 7:00 Uhr UTC, was korrekt ist.

Wenn wir zur Standardzeit zurückkehren, wechselt Central zu UTC-6, sodass der Job um 1:00 Uhr MEZ gestartet wird. Das will ich nicht. Ich möchte, dass sie immer um 2.00 Uhr laufen, unabhängig von Tageslicht oder Normalzeit.

Wie kann ich das machen?

1
Linux-Server passen sich automatisch an DST und CST (EST usw.) an, wenn Ihr Gebietsschema im System auf diese Zeitzone eingestellt ist. Gibt es einen Grund, warum Sie den Server nicht so einstellen können, dass er auf Ihre lokale Zeitzone eingestellt ist? Die Einstellung über UTC erscheint dumm. JakeGould vor 6 Jahren 0
Da UTC die Sommerzeit nicht einhält, ist es die einfachste Lösung, die Zeitzone Ihres Systems in UTC einzustellen. Dies bedeutet, dass es immer um 7 Uhr UTC ausgeführt wird. Abhängig von der Jahreszeit wird der Job möglicherweise um 3:00 Uhr CST oder 02:00 Uhr CST ausgeführt, aber er wird immer um 7:00 Uhr UTC ausgeführt. Ramhound vor 6 Jahren 0

1 Antwort auf die Frage

2
Alex

Führen Sie sudo dpkg-reconfigure tzdatadie lokale Zeitzone (anstelle von UTC) aus, die Sie benötigen. Außerdem können Sie einen ntpDämon einrichten und ausführen, der die Uhrzeit präzise synchronisiert und die Tagesspeicherzeit automatisch stufenlos umstellt. Dies ist besonders wichtig für zeitkritische Aufgaben wie Rechnungsstellung und E-Mail-Server.