時間C関数(エポックからの秒数)を使用すると、現在のCentOS 6サーバーの時間が、正しい時間の別のサーバーと比較して約7時間遅れていることがわかります。システムクロックを修正するにはどうすればよいですか?数週間前にこのサーバーをセットアップしただけなので、ドリフトしているとは思わないが、そうかもしれない。ntpdをセットアップしましたが、時間の差が大きすぎるために役に立たないでしょう。
時間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=true
タイムゾーンとしてUTCを使用しない場合でも、ここで設定する必要があることに注意してください。これは、サーバーのハードウェアクロックを指します。選択したシステムタイムゾーンに関係なく、常に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=UTC date
。