Linux/時刻を設定する

Linux/時刻を設定する

時刻サーバーを使って強制的に時間を正しくする

$ ntpdate -u ntp.nict.jp

通常は123番ポートを使うが、大体デーモンが塞いでいるのでuを使って開いているポートでやる。

時刻を定期的に合わせる

VMware上にインストールしたDebian etch の時計のずれが激しい(VMwareの問題)ので問題解決をあきらめて定期的にあわせることにした

時刻はNTPという仕組みで合わせる。仕組みは簡単でサーバに時刻を聞きに行くだけ。

今回は合わせるだけなのでNTPのクライアントが必要になるので調べてみる。

$ aptitude search ntp
p   ntpdate  - client for setting system time from NTP servers

それらしいのがあったのでインストール

$ aptitude install ntpdate

インストール完了

動作を確認してみる。とりあえず現在時を確認

$ date
Sat Dec 15 11:21:47 JST 2007

ここと確認 http://www3.nict.go.jp/cgi-bin/JST.pl

起動して少ししかたってないのにもう20秒近く進んでいる・・・これは可変クロックのCPUのせいだな

使い方がわからんので調べる

$ man ntpdate
NAME
       ntpdate - set the date and time via NTP
SYNOPSIS
       ntpdate  [-bBdoqsuv]  [-a key] [-e authdelay] [-k keyfile] [-o version] [-p sam-
       ples] [-t timeout] server [...]

ゴチャゴチャ書いてあるが

$ ntpdate サーバ名

でいいっぽい

今回は独立行政法人情報通信研究機構のNTPサーバを拝借させてもらう

時刻のずれが比較的大きくなるのでstepモードという強制的に時間を設定するモードにする・・・ほかには徐々に標準時に近づけるslewモードとか、一定以上ずれていたら修正するモードとかイロイロあるっぽい

stepモードはbオプションで指定

$ ntpdate -b ntp.nict.jp

実行すると時計が合った状態になって、何秒修正したかを表示してくれる、今は進んでしまう病なのでマイナス表示・・・つまり時間を巻き戻しましたよということ

それにしても時計進むの早すぎ・・・合わせた先から1秒以上ずれる・・・

定期実行に登録する。ってことでcronさんの出番です。

$ crontab -e

エディタが起動するので

0,15,30,45 * * * * /usr/sbin/ntpdate -b ntp.nict.jp

これ追記・・・

cronの設定を読み込みなおし

$ /etc/init.d/cron reload

終了

っとここまで書いて思ったが・・・時間を基準にしてコマンドを実行するcronで時間の設定をするとメチャクチャなことになるのではないかと・・・・ とくにsetpモードで合わせるとたいへんなことになりそうなんだが

かといってslewモードだと最大で1秒につき0.005秒しか修正できない仕様 つまり今みたいに1秒に2秒分ぐらいずれてしまうと使い物にならない

遅い分にはいいが、時間が進む状況は困る・・・

linux/ope/adjust_clock.txt · 最終更新: 2018-11-30 11:33 by ore