ラットの渡辺です。
連休が終わったと思ったら、あっという間に10月になってしまいました。
時間が過ぎていくのは速いものですが、サーバーの時間は常に正確でないとよろしくありません。
自宅サーバーで何かテレビを録画するような仕組みを構築する際、時間がずれていては
お話になりませんからね。
というわけで、今回の自宅サーバー構築作業は、「サーバーの時刻を正確に保つ」
ための設定作業を行います。UNIX系のOSでは ntpdate や ntpd というプログラム
が一般的な時刻あわせの道具として使われます。NTP(Network Time Protocol)
という仕組みで時刻を同期させます。
具体的な作業手順は以下のとおり。
1.基準となるNTPサーバーと自宅サーバー間の時刻ズレの確認
% ntpdate -q ntp.jst.mfeed.ad.jp
server 210.173.160.87, stratum 2, offset 153.412709, delay 0.03415
server 210.173.160.27, stratum 2, offset 153.412196, delay 0.03439
server 210.173.160.57, stratum 2, offset 153.412324, delay 0.03476
1 Oct 23:56:51 ntpdate[699]: step time server 210.173.160.87 offset 153.412709
基準サーバー(ntp.jst.mfeed.ad.jp)と比べ153.4秒(2分30秒強)の遅れがあります。
これはひどいですね・・・。PCの内部時計はあまり正確でないので、定期的に
時間をそろえる必要があることがわかります。
2.自宅サーバーにNTPサーバ(ntpd)が起動していないときに時刻をそろえる方法
自宅サーバーの時刻情報を変更するので、一般ユーザーでは権限がありません。
rootになって以下のコマンドを実行します。
# ntpdate -b ntp.jst.mfeed.ad.jp
# exit
3.もう一度基準NTPサーバーと自宅サーバー間の時刻ズレの確認
% ntpdate -q ntp.jst.mfeed.ad.jp
server 210.173.160.87, stratum 2, offset -0.023991, delay 0.03865
server 210.173.160.27, stratum 2, offset -0.021956, delay 0.03406
server 210.173.160.57, stratum 2, offset -0.022670, delay 0.03528
2 Oct 00:14:45 ntpdate[813]: adjust time server 210.173.160.27 offset -0.021956 sec
153.4秒→0.02秒までズレが小さくなりました。これくらいなら上等でしょう。
4.時刻あわせの自動化
さすがに、毎日手作業で時刻のズレを修正するのは大変なので、自宅サーバーが自動で修正できるように設定します。(rootで作業しましょう)
4.1 /etc/rc.conf に以下のような行を追加します。
# ntpd の設定
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_config="/etc/ntp.conf"
ntpd_flags="-p /var/run/ntpd.pid"
# OS起動時に ntpdate -b を実行し、NTPサーバーの時刻と同期する。
ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-b ntp.jst.mfeed.ad.jp"
4.2 /etc/ntpd.conf に以下の行を追加します。
driftfile /etc/ntp.drift
server ntp.jst.mfeed.ad.jp
4.3 /etc/ntp.drift ファイルを作成します。
# touch /etc/ntp.drift
4.4 OSを再起動するのもなんなので、 ntpd を起動します。
# /etc/rc.d/ntpd start
Starting ntpd.
これで自宅サーバーの時間はいつでも正確です。
連休が終わったと思ったら、あっという間に10月になってしまいました。
時間が過ぎていくのは速いものですが、サーバーの時間は常に正確でないとよろしくありません。
自宅サーバーで何かテレビを録画するような仕組みを構築する際、時間がずれていては
お話になりませんからね。
というわけで、今回の自宅サーバー構築作業は、「サーバーの時刻を正確に保つ」
ための設定作業を行います。UNIX系のOSでは ntpdate や ntpd というプログラム
が一般的な時刻あわせの道具として使われます。NTP(Network Time Protocol)
という仕組みで時刻を同期させます。
具体的な作業手順は以下のとおり。
1.基準となるNTPサーバーと自宅サーバー間の時刻ズレの確認
% ntpdate -q ntp.jst.mfeed.ad.jp
server 210.173.160.87, stratum 2, offset 153.412709, delay 0.03415
server 210.173.160.27, stratum 2, offset 153.412196, delay 0.03439
server 210.173.160.57, stratum 2, offset 153.412324, delay 0.03476
1 Oct 23:56:51 ntpdate[699]: step time server 210.173.160.87 offset 153.412709
基準サーバー(ntp.jst.mfeed.ad.jp)と比べ153.4秒(2分30秒強)の遅れがあります。
これはひどいですね・・・。PCの内部時計はあまり正確でないので、定期的に
時間をそろえる必要があることがわかります。
2.自宅サーバーにNTPサーバ(ntpd)が起動していないときに時刻をそろえる方法
自宅サーバーの時刻情報を変更するので、一般ユーザーでは権限がありません。
rootになって以下のコマンドを実行します。
# ntpdate -b ntp.jst.mfeed.ad.jp
# exit
3.もう一度基準NTPサーバーと自宅サーバー間の時刻ズレの確認
% ntpdate -q ntp.jst.mfeed.ad.jp
server 210.173.160.87, stratum 2, offset -0.023991, delay 0.03865
server 210.173.160.27, stratum 2, offset -0.021956, delay 0.03406
server 210.173.160.57, stratum 2, offset -0.022670, delay 0.03528
2 Oct 00:14:45 ntpdate[813]: adjust time server 210.173.160.27 offset -0.021956 sec
153.4秒→0.02秒までズレが小さくなりました。これくらいなら上等でしょう。
4.時刻あわせの自動化
さすがに、毎日手作業で時刻のズレを修正するのは大変なので、自宅サーバーが自動で修正できるように設定します。(rootで作業しましょう)
4.1 /etc/rc.conf に以下のような行を追加します。
# ntpd の設定
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_config="/etc/ntp.conf"
ntpd_flags="-p /var/run/ntpd.pid"
# OS起動時に ntpdate -b を実行し、NTPサーバーの時刻と同期する。
ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-b ntp.jst.mfeed.ad.jp"
4.2 /etc/ntpd.conf に以下の行を追加します。
driftfile /etc/ntp.drift
server ntp.jst.mfeed.ad.jp
4.3 /etc/ntp.drift ファイルを作成します。
# touch /etc/ntp.drift
4.4 OSを再起動するのもなんなので、 ntpd を起動します。
# /etc/rc.d/ntpd start
Starting ntpd.
これで自宅サーバーの時間はいつでも正確です。