Warum verwendet Crontab eine andere Zeitzone als meine lokale Zeitzone?

Warum verwendet Crontab eine andere Zeitzone als meine lokale Zeitzone?

Meine Crontab sieht aus wie

PATH=/RunCloud/Packages/apache2-rc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

# some commands here

Die Ausgabe datevom Terminal ist, dass Sun 11 Sep 2022 03:00:00 PM CEST ich einen Cron eingerichtet habe 5 3 * * * echo date > /home/time.txt, der aber nicht um 03:00 Uhr Serverzeit ausgeführt wird

Um crontab und seine Zeitzone zu testen, habe ich

* * * * * echo date > /home/time.txt 

es läuft erfolgreich und gibt dieselbe Zeit/Zeitzone aus, als ob ich dateden Befehl im Terminal eingebe

Dies bedeutet, dass meine Cron-Syntax korrekt ist und die Zeitzonen für Crontab und Terminal gleich sind. Was könnte dann falsch sein?

Die Ausgabe von lsb_releaseist

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

Die Ausgabe von timedatectlist

               Local time: Sun 2022-09-11 15:44:51 CEST
           Universal time: Sun 2022-09-11 13:44:51 UTC
                 RTC time: Sun 2022-09-11 13:44:50
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Antwort1

Sie können dies beheben, indem Sie Folgendes oben in Ihre Crontab einfügen:

CRON_TZ=Europe/Berlin

Sie können auch überprüfen, ob Ihr /etc/localtimeGerät richtig eingestellt ist:

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Ich bin mir nicht sicher, warum. Ich bin sicher, dass bald andere Benutzer kommen und Ihnen weiterhelfen werden, wenn das Problem dadurch nicht behoben wird.

verwandte Informationen