Ubuntuで日時情報を設定する
ubuntu18.04の時間を設定する必要があり
その時の備忘録。
目次
日時設定を確認
確認方法
#コマンド timedatectl
#コマンド出力 Local time: 土 2019-01-26 14:37:55 JST Universal time: 土 2019-01-26 05:37:55 UTC RTC time: 土 2019-01-26 05:37:55 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
日時設定について
種別 | 概要 | 変更方法 |
---|---|---|
Local time | システムが持つ日時情報。現地時刻を示す。 Universal time と合わせてシステムクロックと呼ばれる。 |
NTP、システム設定、dateコマンドで設定可能 |
Universal time | システムが持つ日時情報。世界標準時刻を示す。 Local time と合わせてシステムクロックと呼ばれる。 |
Local time に連動して変更される。 |
RTC time | ハードウェアが持つ日時情報。 リアルタイムクロックと呼ばれる。 |
BIOS/UEFIやhwclockコマンドで設定可能 |
NTPサーバーを変更して日時設定する
Ubuntuではデフォルトで ntp.ubuntu.com がサーバに設定されている。
systemd-timesyncd サービスによって上記NTPサーバーと同期されている。
# systemd-timesyncd の状態確認 sudo systemctl status systemd-timesyncd.service # 同期ができている場合の出力例 systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor Active: active (running) since Sat 2019-01-26 13:56:43 JST; 45min ago Docs: man:systemd-timesyncd.service(8) Main PID: 533 (systemd-timesyn) Status: "Synchronized to time server 91.189.89.199:123 (ntp.ubuntu.com)." Tasks: 2 (limit: 4915) CGroup: /system.slice/systemd-timesyncd.service └─533 /lib/systemd/systemd-timesyncd 1月 26 13:56:42 T460s systemd[1]: Starting Network Time Synchronization... 1月 26 13:56:43 T460s systemd[1]: Started Network Time Synchronization.
Status: "Idle." の場合はサーバーと同期できていない
NTPサーバーを変更する
会社などでプロキシー環境では、指定されたNTPサーバーがあるので
その場合は /etc/systemd/timesyncd.conf を修正して変更する。
sudo nano /etc/systemd/timesyncd.conf
# 修正前 #NTP= #FallbackNTP=ntp.ubuntu.com # 修正後 NTP=XXX.co.jp FallbackNTP=ntp.ubuntu.com
systemd-timesyncd を再起動
sudo systemctl restart systemd-timesyncd.service
NTPサーバーとの同期確認
sudo systemctl status systemd-timesyncd.service
以下のようになっていればOK。
Status: "Synchronized to time server 1xx.1xx.2xx.1xx:1xx (XXX.co.jp)."
日時設定も確認
timectl
を確認すると
システムクロック、リアルタイムクロックすべて同期されているはず。
NTPサーバー変更ができない場合
システムクロックを設定する
HTTP経由で日時情報を取得し、dateコマンドで設定する
sudo date --set @"$(wget -q https://ntp-a1.nict.go.jp/cgi-bin/jst -O - | sed -n 4p | cut -d. -f1)"
※ certificateエラーが出た場合は、
オプション --no-check-certificate をつければOK
リアルタイムクロックを設定する
hwclock コマンドで システムクロックの日時情報をリアルタイムクロックに反映させる。
sudo hwclock --systohc
systohcでリアルタイムクロックが書き換わらない場合
ハードウェアクロックのデバイスファイルに直接書き込む
ls /dev/rtc* #rtcのデバイスファイルを探す sudo hwclock -w -f /dev/rtc0 #すべてのrtcデバイスファイルにシステムクロック情報を書き込む
以上。