Debianの時刻設定


NTP(Network Time Protocol)を使って、サーバーの時計を常に正しい時刻に修正します。

サーバーが持っている時間と実時間がずれた場合、電子メールやファイルの送受信時間、各種ログに記載された時間などに誤差が生じてしまうので、NTPを使ってネットワーク上のNTPサーバと時刻を合わせます。
勿論PCにも時計がありますがあまり精度が高くなく、時刻合わせが必要となります。

ハードウェアクロック

PCの内部に搭載された時計を参照してみましょう。
hwclockと言うコマンドは、 /dev/rtc というリアルタイムクロックのインターフェースを解して内部時計を参照します。
このPCは対応していないようなので、–directisaのオプションをつけて実行しています。

# date
2009年  5月  2日 土曜日 00:07:46 JST
# hwclock --show
select() to /dev/rtc to wait for clock tick timed out
# hwclock --directisa
2009年04月29日 21時35分59秒  -0.064713 seconds

システムクロックとハードウェアクロックが見事にずれていますね。

UTCとJST

UTCとはUniversal Time, Coordinatedと言い、いわゆる世界標準時の事です。
JSTとはJapan Standard Timehwclockと言い、日本標準時の事です。
世界中で使われるDebianが今現在UTCとJSTのどちらを使用しているかを知る為、 /etc/adjtime を見ます。
hwclockコマンドを実行すると、「/etc/adjtime」が作成されるので、「/etc/adjtime」の3行目にLOCALとあれば、JSTで、UTCとあればUTCでの設定となります。

# cat /etc/adjtime
0.000000 1228000000 0.000000
1228000000
UTC
#

USTからJSTに変更

lennyではシステムクロックをハードウェアクロックから取得するためにブート時に /etc/init.d/hwclockfirst.sh が実行されます。
/etc/init.d/hwclockfirst.shを見ると、ハードウェアークロックが UTCであるかJSTであるかの設定は、「/etc/default/rcS」に記述されていることがわかります。
JSTを使用するようにするには、 /etc/default/rcS を次のように修正します。

#vi /etc/default/rcS
UTC=no

ntpで時刻あわせ

NTPのクライアントである ntpdate コマンドをapt-getコマンドでインストールします。

# apt-get install ntpdate
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  lockfile-progs
以下のパッケージが新たにインストールされます:
  lockfile-progs ntpdate
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 85 個。
67.7kB のアーカイブを取得する必要があります。
この操作後に追加で 279kB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://ftp.jp.debian.org lenny/main lockfile-progs 0.1.11-0.1 [7810B]
取得:2 http://ftp.jp.debian.org lenny/main ntpdate 1:4.2.4p4+dfsg-8 [59.8kB]
67.7kB を 0s で取得しました (522kB/s)
未選択パッケージ lockfile-progs を選択しています。
(データベースを読み込んでいます ... 現在 102753 個のファイルとディレクトリがインストールされています。)
(.../lockfile-progs_0.1.11-0.1_i386.deb から) lockfile-progs を展開しています...
未選択パッケージ ntpdate を選択しています。
(.../ntpdate_1%3a4.2.4p4+dfsg-8_i386.deb から) ntpdate を展開しています...
man-db のトリガを処理しています ...
lockfile-progs (0.1.11-0.1) を設定しています ...
ntpdate (1:4.2.4p4+dfsg-8) を設定しています ...
#

試しにntpdateコマンドで時刻合わせをしてみます。 ISPが公開してるタイムサーバーがネットワーク的に最も近く、時刻合わせに最適です。(ntp.hogeisp.ne.jp)に対してntpdateで時刻を合わせます。

# ntpdate ntp.hogeisp.ne.jp
 3 May 15:52:10 ntpdate[9138]: step time server 202.216.224.85 offset 140377.881443 sec
debian:/# date
2009年  5月  3日 日曜日 15:52:13 JST
/#

ハードウェアクロックとの同期

システムクロックが正しい時刻になったので、 hwclock –systohc コマンドでハードウィアクロックに同期させます。

# hwclock --directisa
2009年04月29日 21時35分59秒  -0.742870 seconds
# hwclock --systohc --localtime --directisa
# hwclock --directisa
2009年05月03日 16時40分28秒  -0.222667 seconds
#

これでシステムクロック、ハードウェアクロックともに正しい時刻になりました。
ただ、コンピューターの時刻と言うものは日々刻々とずれていってしまいますので、これらのコマンドをシェルシェルスクリプト化してcronで毎日1度実行させるようにしましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


− 8 = 1

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>