ntpdateとcrontabによる時刻合わせ


ntpdateとcrontabによる時刻合わせ



時刻合わせはDesktopと共通に必要な操作である。
第一にするべきことだろう。

whichコマンド

whichコマンドはたとえば実行したいプログラムのpathがわからない場合、打つコマンドである。
ntpdateはroot専用なので、rootになって次のようにする。
root@debian5:/home/shimirin# which ntpdate
/usr/sbin/ntpdate
root@debian5:/home/shimirin# which perl
/usr/bin/perl

ついでにperlも探してみた。
ユーザも使えるコマンドではrootになる必要はない。

ntpdate

この項目はDesktopと重複するが、Desktopの記述を補足するかたちで書いておく。
ntpdateはrootの環境変数のpathが通っているために、たんに「ntpdate」を実行すればいい。ただし次項のcrontabではフルパスを記入する必要がある。「which」を使えばそれを確認できる。
root@debian5:/home/shimirin# ntpdate 133.100.11.8
9 Mar 23:28:55 ntpdate[24218]: step time server 133.100.11.8 offset 4.522147 sec

4.5秒誤差があった。「133.100.11.8」は時刻サーバのIPアドレスである。

crontab

crontabによって実行予定時刻を決める。
crontabの記述の仕方は、



のようである。
分は00-59、時は00-23、日は1-31、月は1-12、曜日は0-6(ゼロが日曜)。アステリスクはすべてを表す。
crontabの内容を表示するのは、
crontab -l

である。
さて、時刻合わせを毎日5:15に実行するように設定しよう。
root@debian5:/home/shimirin# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
root@debian5:/home/shimirin# crontab -l
# m h dom mon dow command
15 05 * * * /usr/sbin/ntpdate 133.100.11.8

「crontab -e」がcrontab編集コマンドである。このときeditorのnanoが起動した。
「crontab: installing new crontab」の前にnanoで編集している。ntpdateコマンドをフルパスで記入している。
nanoはDebian GNU/LinuxでDefaultで設定されているeditorである。
これを「vi」などに変更することはできるが、ここはこのままnanoで編集してみる。なぜなら、書き込んでexitするだけだから。
「Ctrl+o」で書き込み「Ctrl+x」で抜けるだけである。
これで1日に1度マシンは勝手に時刻合わせをしてくれる。