crontab がローカルタイムゾーンとは異なるタイムゾーンを使用するのはなぜですか?

crontab がローカルタイムゾーンとは異なるタイムゾーンを使用するのはなぜですか?

私のcrontabは次のようになります

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

dateターミナルからの出力は、 Sun 11 Sep 2022 03:00:00 PM CEST cronを設定しました5 3 * * * echo date > /home/time.txtが、サーバー時間の03:00に実行されません。

crontabとそのタイムゾーンをテストするために、私は

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

date正常に実行され、ターミナルでコマンドを入力した場合と同じ時間/タイムゾーンが出力されます

これは、cron 構文が正しく、crontab とターミナルのタイムゾーンが同じであることを意味します。では、何が問題なのでしょうか?

の出力lsb_release

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

の出力timedatectl

               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

答え1

これを修正するには、crontab の先頭に次の行を追加します。

CRON_TZ=Europe/Berlin

/etc/localtimeが正しく設定されていることを確認することもできます。

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

理由はよく分かりませんが、問題が解決しない場合は、すぐに他のユーザーが来て、さらに助けてくれると確信しています。

関連情報