[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:32625] Re: cron の動作時刻がずれます



佐野@浜松です。

1ヶ月程前の話に化石フォローですが。

In <20020403085025.11400@xxxxxxxxxxxxxxxxx>,
  on "Wed, 3 Apr 2002 17:50:36 +0900',
   with "[debian-users:32248] cron の動作時刻がずれます",
 Taiyu Fujii <tf@xxxxxxxxxxxxxx> さん wrote:

> 現在woodyで運用しているのですが、表題の通り、cronの動作時刻がずれます。
> たとえば5時にセットしたジョブが、14時に実行されます。つまり9時間遅れています。

「9 時間」というところがあやしそうです。cron で設定された
時間を UTC で解釈すると JST では 9 時間遅れになりますね。

> /etc/default/rcSでシステムクロックをUTCにしています。
> 
> $ less /etc/default/rcS
> # Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
> UTC=yes
> 
> ちなみに、以下のようにしてハードウェアクロックを設定しました。
> $ hwclock --systohc --utc

この --utc オプションですが、--systohc と組み合わせた場合は
単に /etc/adjtime の 3 行目に UTC と記録するという意味だけしか
無いような気がします。時間が無いのでコードは確認してませんけど。

 --utc を付けた場合と付けない場合でそれぞれ実行後に
 hwclock --show して確認してみてください。どちらも
ほぼ同じ時刻が表示されませんか ?

この設定は、再起動後に --hctosys を実行した際、
ハードウェアクロックを UTC として扱うか、
ローカルタイムとして扱うか、ということを
決めるためのものだと思います。

が、この下の結果を見ると、ハードウェアクロックはローカルタイムとして
扱われてるみたいですね。

> 以下の様に表示されるので、設定自体は間違っていないと思うのですが。
> 
> $ hwclock --show
> Wed Apr  3 17:38:31 2002  -0.916990 seconds
> 
> $ date
> Wed Apr  3 17:38:33 JST 2002

この結果を見ると「ハードウェアクロック」の時刻
 (hwclock --show の結果) は JST (ローカルタイム) の
時刻と同じですね。

もしハードウェアクロックが UTC として扱われているのなら、
(hwclock --show の結果は) むしろこの下の date -u の結果と
同じになるはずではないでしょうか。

> $ date -u
> Wed Apr  3 08:45:11 UTC 2002

> crontab -eで設定するときも、
> TZ=JSTを先頭の行で設定しています。してもしなくても
> 動作時刻のずれは変わりませんでした。

 /usr/share/zoneinfo に JST というファイルはありますか ?

以下のコマンドを実行してみてください。

 TZ= date
 TZ=JST date
 TZ=Japan date

 (root で
 ln -s /usr/share/zoneinfo/Japan /usr/share/zoneinfo/JST 
 を実行してあったりすると、また結果が違ってきますけど)

> $ hwclock --systohc --localtime
> もためしてみたのですが、結果は変わりませんでした。

「結果は変わらない」ということであれば、やはり /etc/default/rcS の
設定が有効になってない (ハードウェアクロックはローカルタイムのまま)
という可能性が高そうです。

-- 
 # (わたしのおうちは浜松市、アカウミガメのふるさとの街)
   <kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)