問題の例:
* 9 * * * echo 9
* 10 * * * echo 10
上記は毎分ユーザーにメールを送信しますが、「9」の応答はすべて10:00 AM-> 10:59 AMに発生し、「10」は11:00 AM-> 11:59 AMに受信されます。 。
のジョブを実行する
* * * * * /bin/date ; /bin/date -u
予想される(正しい)日付と時刻を返しました。これはUTCと現地時間(アメリカ/デンバー)の両方に当てはまりました。特定の時間に毎分実行するようにこのジョブを変更すると、オフセットが発生します(9で実行するように指示されたジョブなど)。
私が完了した現在のデバッグ:
さて、それは奇妙です。たぶん、私のタイムゾーンファイルがどういうわけか台無しにされていますか?それを確認しましょう
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
ハードウェアクロックをチェックして、これがオフになっていないか、ローカル設定(ルートとして実行)と何らかの形で一致していないかどうかを確認しました。
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
1秒ずれているように見えますが、それで私のcronジョブが1時間オフのスケジュールで実行されないはずです。
私は次のことも確信しています:
- 私のタイムゾーンは最近変更されましたか?番号
- とにかく手動でタイムゾーンを修正してみましたか?はい
- タイムゾーンを修正した後、cronをリセットしましたか?はい
- cronサービスが再起動されたことを確認しましたか?はい
- cronサービスを再起動しましたか?はい
- 本当にcronが再起動されましたか?Cronが再起動されたことを100%確実に
その他の関連する可能性のある情報:
Debianを実行しています。
cat /etc/debian_version
8.6
現在のカーネル
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
更新されたデバッグ:
「hwclock --systohc」を実行しましたが、動作に目立った変更はありません。このコマンドを実行して確認しました
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
このファイルが存在しないため、「cat / etc / sysconfig / clock」を実行できません。/ etc /ツリーの下でfindコマンドを実行して 'clock'を見つけると、その名前のファイルがないことを確認できます。
私が知っている何かがCRON_TZ変数を設定しているかどうかを確認しました。ユーザーレベルでもルートレベルでも設定されません。cronにそれらをエコーアウトさせると、何も出力されません。
hwclock --systohc
だけの完全を期すため、および追加cat /etc/sysconfig/clock
の質問に?
CRON_TZ
たenv varがどこにも設定されていますか?