systemdなLinux †
/etc/systemd/timesyncd.conf
いつの間にか ntpd はいなくなっていました。
というわけで,上記ファイルの
NTP=
にNTPサーバー名またはIPアドレスを記入して下記コマンドを実行します。
# systemctl restart systemd-timesyncd
うまくいっているかどうかの確認は下記。
# systemctl status systemd-timesyncd
systemdじゃないLinux †
/etc/ntp.conf
いくつかの設定をまとめて変更。
- /var/lib/ntp/ntp.driftの保存場所を変える。
(コメントアウト、すなわちこのファイルを作成しないようにしても構わない)
- タイムサーバーのアドレスを、近所のタイムサーバーに変更する。
$ su
# cp ntp.conf ntp.conf.orig
# vi /etc/ntp.conf
# diff ntp.conf.orig ntp.conf
3c3
< driftfile /var/lib/ntp/ntp.drift
---
> driftfile /var/tmp/ntp.drift
21,24c21
< server 0.debian.pool.ntp.org iburst
< server 1.debian.pool.ntp.org iburst
< server 2.debian.pool.ntp.org iburst
< server 3.debian.pool.ntp.org iburst
---
> server {近所のタイムサーバーアドレス} maxpoll 14
/etc/fake-hwclock.data
このファイルを生成しないようにする。
デフォルトでは1時間に1回、そのときの時刻を上記のファイルへ出力している。
$ su
# chmod -x /etc/cron.hourly/fake-hwclock
# chkconfig --del fake-hwclock # システム起動時の実行を抑止(rcS.dから抹消)
fake-hwclock 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# rm /etc/fake-hwclock.data # 残しておいても問題はないが・・・
補足:
Raspberry Piは電源オフ時には時刻を「忘れて」しまう(電池でバックアップされたリアルタイムクロックはない)。
次回コールドスタート時に、前回の電源オフ時と近い時刻を上記ファイルから読み込んで、とりあえず時刻を初期化するようだ。
起動直後はsyslogの時刻が狂っているが、そのうちntpdが時間を合わせてくれるので、あまり気にしないことにする。
参考:
fake-hwclockパッケージを削除してもよいかもしれない。
# apt-get purge fake-hwclock
/etc/ntp.conf
前述のシステム起動時のfake-hwclockを抑止したので、ntpでの時刻合わせがうまくいかない場合がある。
(リアルタイムクロック無し=起動時の時刻は 1900/01/01 00:00:00 から始まる)
よって、強制的に時刻を合わせるようにntpの起動スクリプトを変更する。
$ su
# cd /etc/init.d
# cp -p ntp ntp.orig
# vi ntp
# diff ntp.orig ntp
60a61
> /usr/sbin/ntpd -g -q