私のローカルタイムゾーンはUTCではありません。コンピュータのタイムゾーンを変更せずにcronにスケジュールにUTCを使用させるにはどうすればよいですか?
答え1
では可能ですcronie
実装のcron
。
すべてman cron
:
crontables では異なるタイムゾーンを使用できます。詳細については、crontab(5) を参照してください。
すべてman 5 crontab
、
CRON_TZ変数は、cronテーブルごとのタイムゾーンを指定します。ユーザーは、指定されたタイムゾーンに基づいてテーブルに時間を入力する必要があります。ログファイルへの書き込みに使用される時間は、デーモンが実行されているローカルタイムゾーンに基づいています。
完全なcronファイルのタイムゾーンを指定するには、タイムゾーンをまたはリストされている別CRON_TZ=UTC
のタイムゾーンに設定できますtimedatectl list-timezones
。その後、その時点でコマンドが実行されますが、UTC
コマンドで使用された時間はタイムゾーンを使用します。
コマンドで時間を参照するには、コマンド/スクリプトの前に次のものを付ける必要があります。/usr/bin/env TZ=UTC
答え2
TZ
環境変数を使用してタイムゾーンを設定できます。システムがに基づいている場合は、ファイルをsystemd
変更し、cron.service
そのサービスに対してのみ変数を設定できます。
たとえば Debian /usr/lib/systemd/system/cron.service
add の場合
Environment="TZ=UTC"
[Service]
一部後ろに EnvironmentFile=
読みました(ファイルが値をリセットしないようにするため)。デーモンを再ロードして再起動しますcron.service
。
Debian 11 でテストされました。