web-dev-qa-db-ja.com

日付とhwclockが同期していない-なぜ

私はGMT + 8を使用しており、ハードウェアをUTCに設定しています。

[root@sjoam2 ~]# date
Sat Aug  1 16:32:04 SGT 2015
[root@sjoam2 ~]# hwclock --systohc --utc
[root@sjoam2 ~]# hwclock --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1438417931 seconds after 1969
Last calibration done at 1438417931 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/08/01 08:32:17
Hw clock time : 2015/08/01 08:32:17 = 1438417937 seconds since 1969
Sat 01 Aug 2015 04:32:17 PM SGT  -0.641290 seconds
[root@sjoam2 ~]# 

うまくいくようです。

hwclockデバッグは08:32UTCを示しています

--hwclockの最後の文についてはよくわかりません--debug(Sat 01 Aug 2015 04:32:17 PM SGT -0.641290秒)これにより、現在のタイムゾーン形式で日付が表示されます(+8時間です)-私はその罰金を想定しています

再起動後

[root@sjoam2 ~]# hwclock --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1438417931 seconds after 1969
Last calibration done at 1438417931 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/08/01 08:36:45
Hw clock time : 2015/08/01 08:36:45 = 1438418205 seconds since 1969
Sat 01 Aug 2015 04:36:45 PM SGT  -0.782726 seconds
[root@sjoam2 ~]# 

Hwclockからはまだ問題ないようです--debugoutput Hwclock = 08:36

--hwclockの最後の文についてはよくわかりません--debug(Sat 01 Aug 2015 04:36:45 PM SGT -0.782726秒)これにより、現在のタイムゾーン形式で日付が表示されます(+8時間です)-私はその罰金を想定しています

しかし、今日付を見てください

[root@sjoam2 ~]# date
Sun Aug  2 00:40:31 SGT 2015

2015年8月1日土曜日04:36:45 PM SGT +さらに8時間、合計16時間を追加します。最後の出力のhwclockの正しい時間にさらに8時間を追加します。 UTCタイミング

どうすればそれを防ぐことができますか?構成がどこで間違っているのですか。

3
Noob

ハードウェアクロックはUTC時間を保存しているはずですが、-uオプションを使用してhwclockにこれを伝えるのを忘れていました。例えば、

hwclock -ru

日付をリセットして実行する

hwclock -su

問題を解決します。

2
Michael Hampton

datehwclockを次のコマンドで同期しました。

$ Sudo hwclock --systohc

上記のコマンドは、date時間をhwclock時間に書き込みます。

[〜#〜] note [〜#〜]hwclock時間をdate時間に書き込みたい場合は、次のようにします。

$ Sudo hwclock --hctosys

テスト用:

$ Sudo hwclock --show
$ date

[〜#〜] note [〜#〜]hwclock -sの代わりにhwclock --hctosysを使用し、hwclock -wの代わりにhwclock --systohcを使用できます。

systohc =システム時間からハードウェア時間。
hctosys =ハードウェア時間からシステム時間まで。

2
Benyamin Jafari