cronのタイムゾーンの問題


11

cronジョブは、サーバー時間と比較して1時間遅れて計算されます。何が起こっているのか分かりません。

私の構成は次のとおりです:

サーバー時間 :

Europe/Paris

/ etc / default / cronに次の行を追加しました。

TZ="Europe/Paris"

それにもかかわらず、cronジョブはサーバー時間より1時間遅れて起動されます。本当に注意が必要なのは、cronに命令「日付」を再生するように要求すると、サーバーの日付(良い日付!)が表示されることです。

この問題を解決する方法がわかりません。私はフォーラムで読書をしてきましたが、何もおもしろくありませんでした。

どう思いますか ?


4
したがって、cronジョブはUTCでスケジュールされています。Vixie cronのマニュアルページには、「デーモンは、存在する場合、タイムゾーンに/ etc / timezoneの定義を使用します」なに/etc/timezone?プロセスが開始された/etc/timezoneよりも最近変更しcronましたか?試しました/etc/init.d/cron restartか?
キーストンプソン

3
/ etc / timezoneは、/etc/init.d/cronを再起動せずに最近変更されました。私はそれを再起動しようとします。
ギヨームルブルジョワ

回答:


16

(解決策であることが判明したため、答えとして私のコメントをコピーします。私は正しいと思いました。)

そのため、cronジョブはUTCでスケジュールされています(UTC Europe/Parisから1時間ずれています)。

Vixie cronのマニュアルページには、

デーモンは、存在する場合、タイムゾーンの/ etc / timezoneからの定義を使用します。

なに/etc/timezone/etc/timezonecronプロセスが開始されたよりも最近変更しましたか?やってみました

/etc/init.d/cron restart


3

Fedoraなどの一部のディストリビューションにはCRON_TZ=、デフォルトのタイムゾーンをオーバーライドするように設定できるメカニズムがあります。

Fedoraから man 5 crontab

CRON_TZ変数は、cronテーブルに固有のタイムゾーンを指定します。ユーザーは、指定されたタイムゾーンに従って時間をテーブルに入力する必要があります。ログファイルへの書き込みに使用される時間は、デーモンが実行されているローカルタイムゾーンから取得されます。

このようなもの:

#m  h           d   m   wday    command
CRON_TZ="Europe/Paris"
5   0,6,12,18   *   *   *       /path/to/script.bash

1

ウィキペディアによると

ほとんどのcron実装は、cronデーモン自体が実行されるシステムタイムゾーン設定のcrontabエントリを単に解釈します。大規模なマルチユーザーマシンに複数のタイムゾーンのユーザーがいる場合、特にシステムのデフォルトのタイムゾーンに混乱を招く可能性のあるDSTが含まれている場合、これは紛争の原因になります。したがって、cron実装は、ユーザーcrontabの「TZ =」環境変数設定行を特別な場合に、そのタイムゾーンに関連する後続のcrontabエントリを解釈する場合があります

それでは、ログインIDのTZ設定がシステムTZ設定と異なる可能性がありますか?


1

cronの再起動は必要でしたが、私にとってはコマンドは

/etc/init.d/crond restart (crond not cron)

0

Ubuntu 14/16でこれを理解しました。私にとって完璧に働いた。

ステップ(暗黙のsudo):

  1. cat /etc/timezone
  2. rm -fv /etc/localtime
  3. ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
  4. apt install -y --reinstall tzdata
  5. /etc/init.d/rsyslog restart
  6. tail -f /var/log/syslog
  7. cat /etc/timezone

どこからcron再起動しますか?
DavidPostill

cronを再起動する必要はありませんでした。
ヴァルンチャンダック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.