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