Linux(Ubuntu)時計関係コマンド

2023/03/16に公開

Linux時計関係のコマンド

たまに困るのでメモ

timedatectlコマンド

Ubuntuにデフォルトである機能。時間確認など

$ timedatectl
               Local time: 火 2023-03-14 21:22:34 JST
           Universal time: 火 2023-03-14 12:22:34 UTC
                 RTC time: 火 2023-03-14 12:22:34
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

サービスの確認

$ sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-14 20:55:18 JST; 28min ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 687 (systemd-timesyn)
     Status: "Initial synchronization to time server 91.189.91.157:123 (ntp.ubuntu.com)."
      Tasks: 2 (limit: 38259)
     Memory: 1.5M
        CPU: 38ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─687 /lib/systemd/systemd-timesyncd

 314 20:55:18 level systemd[1]: Starting Network Time Synchronization...
 314 20:55:18 level systemd[1]: Started Network Time Synchronization.
 314 20:55:48 level systemd-timesyncd[687]: Initial synchronization to time server 91.189.91.157:123 (ntp.ubuntu.com).

dateコマンド

現在時刻確認

$ date

時刻設定

$ sudo date --set "2023-01-01 01:02:03"

RTC設定

RTC設定のオン。WindowsとLinuxとデュアルブートしたとき、Windowsの時間が9時間ずれる対策として実施する。

$ timedatectl set-local-rtc true
$ timedatectl
               Local time: 火 2023-03-14 21:40:32 JST
           Universal time: 火 2023-03-14 12:40:32 UTC
                 RTC time: 火 2023-03-14 21:40:31
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

ntpdate

時計の同期方法。ntpdateをインストール。

$ sudo apt update
$ sudo apt install ntpdate

同期する

$ sudo ntpdate ntp.nict.jp
$ date
2023314日 火曜日 21:38:58 JST

複数のPCの時計(時刻)合わせ

ホストにntpを入れる

$ sudo apt update
$ sudo apt install -y ntp
$ sudo systemctl restart ntp

クライアント側はchronyを入れる

$ sudo apt update
$ sudo apt install -y chrony

/etc/chrony/chrony.confを設定

以下の部分を修正

pool ntp.ubuntu.com        iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2

同期したい、ホストのIPアドレスを指定。

#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool <ip adress> iburst

再起動

$ sudo systemctl restart chrony

以下で確認

$ chronyc sources -v

時間が違いすぎててうまくいかないときは、ntpdateで他のPCと一旦同期するとうまくいったりすることもあります。

$ ntpdate -d <other_computer_ip>

まとめ

時計は地味に重要です。

参考リンク

https://self-development.info/【ubuntu】ntpdateではなくtimedatectlによる時刻合わせ/

https://zenn.dev/karaage0703/articles/0ca67e19aa772e

https://tomono.tokyo/2018/08/01/6790/

https://ja.linux-console.net/?p=1820

https://arkgame.com/2021/09/13/post-299623/

Discussion