Ich habe einen Cronjob, der jeden Tag um 9:00 Uhr UTC-Zeit ausgeführt wird. Ich bin in GMT + 1, daher wird es um 10:00 Uhr Ortszeit ausgeführt. Wenn sich die Zeitzone ändert (auf Sommerzeit, Sommerzeit), wird der Cronjob immer noch um 9:00 Uhr UTC-Zeit, aber um 11:00 Uhr Ortszeit ausgeführt. Aber ich möchte, dass es immer um 10:00 Uhr ausgeführt wird, egal ob im Sommer oder nicht. Wie mache ich das?
10
Antworten:
Überprüfen Sie Ihre Einstellung in / etc / timezone. In der Frage, die Sie erwähnt haben, befinden Sie sich in "GMT + 1". Wenn dies Ihre Zeitzone ist, wird Ihr Skript immer um UTC plus eine Stunde ausgeführt. Wenn Sie z. B. "Europa / Paris" einstellen, ändert sich die Ausführungszeit mit der Sommerzeit.
quelle
Dies hängt wahrscheinlich von Ihrem Betriebssystem und dessen Implementierung ab
cron
. Dies ist in der gängigsten Cron-Implementierung nicht möglichvixie/isc cron
. Aus demcrontab(5) manpage
:quelle
Wenn ich @Cyrus beantworte, antworte ich wie folgt:
Ich habe ein Skript erstellt, das einen UTC-Offset überprüft:
Dann füge ich jeweils zwei Crontab-Einträge für den gewünschten Offset hinzu:
quelle
Von der Handbuchseite:
quelle
Verschieben Sie Ihren Cronjob auf 8:00 und schlafen Sie eine Stunde, wenn Sie in GMT + 1 sind
quelle