@suzu6

主にWEBと解析の技術について書きます。

広く浅くも続ければ深くなるはず。

CentOSの時刻を変更

Laravelで開発中にDBの時刻にずれがあり、原因を辿ったら開発環境の時刻がずれていた。 そのため、場当たり的だが手動で時刻を修正する。

週末やバッチ処理のテストにも使える。

環境

  • CentOS 7.4

CentOS7の時刻(同期)設定を参考に時刻を設定していた。 どこかで間違えたか、VMで開発していたことが原因だと思う。

手順

timezoneはAsia/Tokyoに設定済みだったが、5時間ほどずれていた。 CLIでは以下のコマンドで確認できる。

$ date
2019年  6月 10日 月曜日 08:39:39 JST

$ timedatectl status
      Local time: 月 2019-06-10 08:39:46 JST
  Universal time: 日 2019-06-09 23:39:46 UTC
        RTC time: 日 2019-06-09 13:41:45
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

timedatectl set-time 日付時刻でローカルタイムを修正できる。 この時、ntpが有効になっていると下のようなエラーが出る。

$ timedatectl set-time "2019-06-10 13:00:00"
Failed to set time: Automatic time synchronization is enabled

そのため、timedatectl set-ntp noでntpを無効にしてから再度時刻を修正する。

# ntp無効
$ sudo  timedatectl set-ntp no

$ sudo timedatectl set-time "2019-06-10 13:01:00"
$ timedatectl status
      Local time: 月 2019-06-10 13:01:17 JST
  Universal time: 月 2019-06-10 04:01:17 UTC
        RTC time: 月 2019-06-10 04:01:17
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

ntpを有効に戻す。

$ sudo timedatectl set-ntp yes

参考