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