Raspberry Pi NTPサーバーとの時刻同期

Raspberry Pi
この記事は約8分で読めます。

 

 

Radikoの録音用スクリプトを使用しています。

大変便利なスクリプトですが、録音開始時間はシステムの時刻を参考にしています。
※cronで起動するため

そのため、ラジオ番組開始時刻とRaspberry Piのシステム時刻にズレが生じていた場合には、番組冒頭や終了部分が録音漏れする可能性が出てきます。

そこで、Raspberry Piの時刻をNTPサーバーと同期し、正確な時刻を取得できるようにしました。

 

 

 

 

                 

環境

 

  • Raspberry Pi 4 Model B
    $ cat /etc/os-release
    PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
    NAME="Raspbian GNU/Linux"
    VERSION_ID="11"
    VERSION="11 (bullseye)"
    VERSION_CODENAME=bullseye
    ID=raspbian
    ID_LIKE=debian
    HOME_URL="http://www.raspbian.org/"
    SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

     

 

時刻同期の状態

 

そもそもRaspberry Piの時刻同期の状態はどうなっているのかを見てみました。

$ timedatectl status
Local time: 火 2022-05-03 01:54:18 JST
Universal time: 月 2022-05-02 16:54:18 UTC
RTC time: n/a
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

System clock synchronized: yesとなっているので、何かしらのNTPサーバーと時刻同期はしているようです。

 

 

では、どのNTPサーバーと時刻同期しているのかを見てみました。

$ sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enab>
Active: active (running) since Tue 2022-05-03 01:16:47 JST; 38min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 817 (systemd-timesyn)
Status: "Initial synchronization to time server 45.76.211.39:123 (2.debian.pool.ntp.org)."
Tasks: 2 (limit: 4915)
CPU: 126ms
CGroup: /system.slice/systemd-timesyncd.service
└─817 /lib/systemd/systemd-timesyncd

Initial synchronization to time server 45.76.211.39:123 (2.debian.pool.ntp.org).と表示されています。

どうやらデフォルト設定では2.debian.pool.ntp.orgってNTPサーバーと時刻同期しているみたいです。

 

 

時刻同期設定をしようと思いましたが、すでに時刻同期設定されていたのでここからは任意のNTPサーバーに時刻同期するよう設定を変えていこうと思います。

 

 

 

NTPサーバーの指定

 

設定するファイルは/etc/systemd/timesyncd.confです。

 

一応バックアップを取得しておきます。

$ sudo cp -p /etc/systemd/timesyncd.conf /etc/systemd/timesyncd.conf.back


編集用とバックアップファイルが存在していることを確認
$ ll -tr /etc/systemd/timesyncd.*
-rw-r--r-- 1 root root 677 3月 27 14:42 /etc/systemd/timesyncd.conf.back
-rw-r--r-- 1 root root 677 3月 27 14:42 /etc/systemd/timesyncd.conf

 

 

/etc/systemd/timesyncd.confをcatすると以下の記述になっていました。

$ cat /etc/systemd/timesyncd.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

 

 

16行目、#NTP=となっているところにNTPサーバーのドメインまたはIPアドレスを記述することで、NTPサーバーを指定できます。

どのNTPサーバーにするか

 

 

所詮個人使用のPCです。

無難なところにしておけば安定性や可用性を考える必要性もありません。

ということで、ntp.nict.jpにしようと思います。

 

余談ですが、NTPサーバーといえば日本最古の公開NTPサーバーを運用している福岡大学の件が頭をよぎります。

研究用として運用されていたものがいつのまにか世界中からアクセスされ、DDos攻撃を受けつつも運用されています。

アクセスが殺到した要因の一つに、あまりにも福岡大学のNTPサーバーが有名になりすぎてネットワーク機器メーカーが公的なNTPサーバーと勘違いし、初期設定として福岡大学のNTPサーバーを指定して製品を販売していたということもあるらしいです。。。

“福岡大学 NTP”といったワードで検索するといろいろなストーリーが見つかると思います。

このサービス、終了時期は明言されていませんが、近い将来停止するようです。

開発・運用・保守に関わった方々にお疲れ様でしたと言いたいです。

 

さて、設定に戻ります。

ntp.nict.jpを/etc/systemd/timesyncd.confに記述します。

~省略~
[Time]
NTP=ntp.nict.jp ←コメントアウトを外し、ntpサーバーを記述
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

 

 

 

続いて、デーモンリロードします。

$ sudo systemctl daemon-reload

 

 

 

そして、サービスを再起動します。

$ sudo systemctl restart systemd-timesyncd.service

 

 

最後にステータスを確認し、指定したNTPサーバーと時刻同期しているか確認します。

$ sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enab>
Active: active (running) since Tue 2022-05-03 02:34:38 JST; 28s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 1694 (systemd-timesyn)
Status: "Initial synchronization to time server [2001:df0:232:eea0::fff4]:123 (ntp.nict.jp)>
Tasks: 2 (limit: 4915)
CPU: 110ms
CGroup: /system.slice/systemd-timesyncd.service
└─1694 /lib/systemd/systemd-timesyncd

 

意図したとおり動いてくれました。

 


Raspberry Piのはじめ方 (日経BPパソコンベストムック)


WIMAXIT 7インチ Raspberry Pi用タッチモニター IPS 1024X600 HDMI端子/Raspberry Pi 4/3/2/1 Model B A+ B+ BB Black Banana Pi Windows10/8/7対応


Raspberry Pi 4 8GB(技適マーク入)MicroSDHCカード128G/Raspbianシステムプリインストール/カードリーダ /5.1V/3A Type-C スイッチ付電源/MicroHDMI-to-HDMIケーブルライン/三つヒートシンク/簡単に取り付けケース/日本語取扱説明書/12ヶ月保証


エレコム micro HDMI ケーブル 1m 4K×2K対応 スーパースリム ブラック DH-HD14SSU10BK

コメント

タイトルとURLをコピーしました