web-dev-qa-db-ja.com

CentOSシステムクロックの修正

時間C関数(エポックからの秒数)を使用すると、現在のCentOS 6サーバーの時間が、正しい時間の別のサーバーと比較して約7時間遅れていることがわかります。システムクロックを修正するにはどうすればよいですか?数週間前にこのサーバーをセットアップしただけなので、ドリフトだとは思いませんが、そうかもしれません。 ntpdをセットアップしましたが、時間差が大きすぎるためか、役に立ちません。

12
user3180

簡単な答えは「手動で日付を設定する」ことですが、これを行う必要がありますが、これが再び発生しないようにするには、実行する必要があることがさらにあります。

  1. システムのタイムゾーン構成が正常な状態であることを確認します。

    実行しない非常に強い理由(ソフトウェアの互換性の問題など)がない限り、サーバーの時計は常に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
    

    次の手順に従って、システムクロックを目的のタイムゾーンに設定します。

    1. /etc/sysconfig/clockの内容を次のように置き換えます。

      ZONE="<timezone>"
      UTC=true
      

      例えば:

      ZONE="Europe/Moscow"
      UTC=true
      

      タイムゾーンとしてUTCを使用しない場合でも、UTC=trueをここで設定する必要があることに注意してください。これは、選択したシステムのタイムゾーンに関係なく、常にUTCであるサーバーのハードウェアクロックを指します。

    2. /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
      
  2. 時計手動を現在の時刻に設定します。

    1. システムクロックを現在の時刻に同期します。

      # ntpd -g -q
      
    2. 時刻が正しいことを確認します。

      # date
      
    3. サーバーのハードウェアクロックをシステムクロックに同期します。

      # hwclock -wu
      
  3. コンピュータを再起動します。修正された時間とタイムゾーンを取得するためにすべてのシステムサービスを再起動する必要があり、サーバーのハードウェアクロックをテストする必要があるため(バッテリーの障害など)、再起動が必要です。

    再起動後、システムが正しい時刻を表示し、ntpdが正しく実行されていることを確認してください。

23
Michael Hampton

ポイントは、タイムゾーンが比較しているボックスと同じであることを確認することです

編集

tZが異なる場合

/ etc/localtime

次に、システム時間を比較するときにUTCオフセットを考慮することを忘れないでください

0
nandoP