Crontab-Zeitplan in verschiedenen Zeitzonen

18

Ich möchte meine Aufgaben in EST planen, möchte jedoch, dass die eigentliche Aufgabe in der Standard-Systemzeitzone ausgeführt wird.

Wie geht das am besten?

DD.
quelle

Antworten:

25

Stellen Sie einfach in Ihrer crontab-Datei die Variable TZ = Some / Where ein. Sie können TZ mehrmals einstellen, um separate Jobs in separaten Zeitzonen auszuführen. Beispielsweise:

TZ=UTC
* 7 * * * root date | mail root
TZ=CEST
* 7 * * * root date | mail root
TZ=PCT
* 7 * * * root date | mail root

Um 7:00 UTC (oder Zeitzone, in der Sie den Cron-Daemon ausgeführt haben) werden drei Jobs ausgeführt, von denen jeder eine eigene TZ-Variable hat.

datacompboy
quelle
+1 wusste das nicht - ziemlich nützlich.
Coops
+1 ein sehr schöner Tipp!
Janne Pikkarainen
Ich möchte, dass sie alle in derselben Zeitzone laufen, aber zu unterschiedlichen Zeiten!
DD.
Agh, Cron-Daemon, der sich der TZ-Variablen bewusst ist, gibt es bereits: blogs.oracle.com/chrisg/entry/…
datacompboy
2
Ich sehe in der Frage nichts, was darauf hindeutet, dass die Umgebung OpenSolaris war ... Vixie Cron sagt ausdrücklich, dass dies nicht funktioniert.
womble
14

In der CENTOS-Version von cron fügen Sie einfach die folgende Zeile hinzu: CRON_TZ = America / New_York

Dadurch wird der Zeitplan gemäß der New Yorker Zeit ausgeführt, die Aufgabe wird jedoch in der Standardzeitzone ausgeführt.

DD.
quelle
Danke für den Tipp zur Standardzeitzone. Dazu müssen Sie in jeder Zeile der crontab eine TZ-Variable hinzufügen, wenn der Cron-Job auch in der Zeitzone Eastern ausgeführt werden soll, z. B .:export TZ=America/New_York; unix_command; next_cmd_in_sequence
Mike S
1
Ich möchte nur erwähnen, dass Sie mehrere CRON_TZ-Einstellungen in einer einzigen crontab haben können - sehr nützlich. :)
Lester Cheung
0

Sie können eine separate Instanz von cron mit einer anderen TZUmgebungsvariablen ausführen oder lernen, einige Stunden zu addieren oder zu subtrahieren.

womble
quelle
2
Ja ... es ist nicht wirklich so einfach, wenn sich die Sommerzeit zu verschiedenen Zeiten in verschiedenen Zeitzonen ändert. Ich dachte, die TZ-Umgebungsvariable würde bedeuten, dass der Prozess in einer anderen TZ ausgeführt wird.
DD.
Ja, und der Prozess mit der unterschiedlichen TZ ist crond.
womble
Wie kann ich den Crond-Dienst in einer anderen TZ ausführen lassen? Entschuldigung, ich bin ein Unix-Neuling.
DD.