Zeitzone für Cron-Jobs

7

Wir haben ein VDS mit CentOS 5.5, das mit der EDT-Zeitzone erstellt und konfiguriert wurde. Ich habe durch etc/localtimeeinen Link ersetzt, der auf die Australia/MelbourneZeitzonendatei (UTC + 10) verweist . Wenn Sie den dateBefehl ausführen, werden Datum und Uhrzeit korrekt angezeigt.

Das Problem ist, dass Cron-Jobs ausgeführt werden, als ob der Server die EDT-Zeitzone auch nach einem Neustart noch verwenden würde. Beispiel: Ein Job, der um 01:01 Uhr hätte ausgeführt werden sollen, wurde nur um 15:01 Uhr ausgeführt.

Was habe ich vermisst?

John Gardeniers
quelle
Meinst du, dass in Crontab -e Sie haben 01 01 * * * *und es tatsächlich läuft01 15 * * * *
Paul
Laufen Sie datevon Cron und sehen Sie, welche Zeitzone angezeigt wird.
Paweł Brodacki
@ Paul, ja genau das meine ich.
John Gardeniers
@Pawel, dieser Test ergab, dass Cron definitiv immer noch EDT verwendet. Die Antwort von quanta löste das Problem.
John Gardeniers

Antworten:

3

Nach dem Ändern der Zeitzone reicht ein Neustart des crond-Dienstes aus, ein Neustart ist nicht erforderlich. Sie wissen nicht, warum Ihr Cron immer noch die EDT-Zeitzone verwendet, aber fügen Sie vor Ihrer Cron-Zeile eine Zeile darunter ein:

TZ=Australia/Melbourne
* * * * * ...

und versuche es erneut.

Quanten
quelle
Das funktioniert, obwohl ich immer noch gerne verstehen würde, warum es überhaupt notwendig sein sollte.
John Gardeniers
Es sollte nicht notwendig sein, aber wenn Sie die Zeitzone Ihres Servers ändern, müssen Sie cron neu starten, damit es von der Änderung erfährt.
Jackbravo
2

Ich hatte das gleiche Problem: Nachdem ich die Zeitzone des Systems geändert hatte, befanden sich die Protokolleinträge von cron auch nach dem Neustart von crond in der alten Zeitzone. Dann bemerkte ich, dass ALLE Protokolleinträge deaktiviert waren - Nachrichten, E-Mails und andere Programme, die Syslog verwenden.

service rsyslog restart

Das erste, was Syslog tut, ist das Protokollieren einer Nachricht (natürlich genug), sodass ich feststellen konnte, dass sie den richtigen Zeitstempel hatte. Ich habe crond neu gestartet, nur um sicherzugehen, und auch die Protokolleinträge waren korrekt.

Gewinnen Sie Bent
quelle