時間C関数(エポックからの秒数)を使用すると、現在のCentOS 6サーバーの時間が、正しい時間の別のサーバーと比較して約7時間遅れていることがわかります。システムクロックを修正するにはどうすればよいですか?数週間前にこのサーバーをセットアップしただけなので、ドリフトだとは思いませんが、そうかもしれません。 ntpdをセットアップしましたが、時間差が大きすぎるためか、役に立ちません。
簡単な答えは「手動で日付を設定する」ことですが、これを行う必要がありますが、これが再び発生しないようにするには、実行する必要があることがさらにあります。
システムのタイムゾーン構成が正常な状態であることを確認します。
実行しない非常に強い理由(ソフトウェアの互換性の問題など)がない限り、サーバーの時計は常にUTC時間で実行する必要があります。
UTCを使用しない場合は、tzselect
を実行してタイムゾーンを選択します。以下に使用するタイムゾーンが画面に表示されます。例はEurope/Moscow
です。それ以外の場合は、以下のタイムゾーンとしてUTC
を使用します。
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in Shell scripts:
Europe/Moscow
次の手順に従って、システムクロックを目的のタイムゾーンに設定します。
/etc/sysconfig/clock
の内容を次のように置き換えます。
ZONE="<timezone>"
UTC=true
例えば:
ZONE="Europe/Moscow"
UTC=true
タイムゾーンとしてUTCを使用しない場合でも、UTC=true
をここで設定する必要があることに注意してください。これは、選択したシステムのタイムゾーンに関係なく、常にUTCであるサーバーのハードウェアクロックを指します。
/etc/localtime
ファイルを、選択したタイムゾーンへのリンクに置き換えます。
# ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
例えば:
# ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# ln -snf /usr/share/zoneinfo/UTC /etc/localtime
時計手動を現在の時刻に設定します。
システムクロックを現在の時刻に同期します。
# ntpd -g -q
時刻が正しいことを確認します。
# date
サーバーのハードウェアクロックをシステムクロックに同期します。
# hwclock -wu
コンピュータを再起動します。修正された時間とタイムゾーンを取得するためにすべてのシステムサービスを再起動する必要があり、サーバーのハードウェアクロックをテストする必要があるため(バッテリーの障害など)、再起動が必要です。
再起動後、システムが正しい時刻を表示し、ntpdが正しく実行されていることを確認してください。
ポイントは、タイムゾーンが比較しているボックスと同じであることを確認することです
編集
tZが異なる場合
/ etc/localtime
次に、システム時間を比較するときにUTCオフセットを考慮することを忘れないでください