LINUX環境構築/vine4.0/ntp

Last-modified: 2006-12-17 (日) 17:32:56

方針

CF-B5Vでは、ntpクライアントのためにntpdを立ち上げたくない
(1M程度消費するため)
ここは、ntpdateをいれて

  • 起動時にはntpdateで一発合わせ(ずれている場合)
  • crondで定期的にじりじりあわせ

することにした

インストール

ntpdateは、結局のところntpパッケージに入っている

$ apt-cache search ntpdate
ntp - Synchronizes system time using the Network Time Protocol (NTP).

インストールには2.2M程度消費する

  • インストール後はntpdが動作していない
    $ chkconfig --list |grep ntp
    ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
    $ ps ax |grep ntp
    26454 pts/0    S+     0:00 grep ntp

debianを観察

debianでは、ntpdateを起動時に走らせるための方法がある

$ pukiwiki_cat ntpdate
#! /bin/sh
test -f /usr/sbin/ntpdate || exit 0
test -f /etc/default/ntp-servers || exit 0
. /etc/default/ntp-servers
test -n "$NTPSERVERS" || exit 0
case "$1" in
start|restart|force-reload)
  echo -n "Running ntpdate to synchronize clock"
  /usr/sbin/ntpdate -u -b -s $NTPSERVERS
  echo "."
  ;;
stop)
  ;;
*)
  echo "Usage: /etc/init.d/ntpdate {start|stop|restart|force-reload}"
  exit 1
esac
exit 0
$ pukiwiki_cat /etc/default/ntp-servers
NTPSERVERS="133.100.11.8"

これを利用する

debianとrpm系

起動後の実行
si::sysinit:ほげほげ

rpmdebian
sysinit/etc/rc.d/rc.sysinit/etc/init.d/rcS -> /etc/rcS.d/S**スクリプトファイル

debian系ではrcS.d/S51ntpdateで実行されている
これはhwclockを実行直後。

rpm系は、同様の処理をrc.sysinitスクリプトで実行している。
ちょっと恐いが、rc.sysinitにいれてみる。

$ diff rc.sysinit.org rc.sysinit |pukiwiki_cat
1011a1012,1016
>
> # add ntpdate by M.Kato
> if [ -f /etc/init.d/ntpdate ]; then
>      /etc/init.d/ntpdate start
> fi

しかし、上記ntpdateは動作しなかった。
なぜなら、networkスクリプトはS10networkで動作するため
てことで、S10ntpdateを作成し
ここで実行することにする
(名前上、必ずS10networkの後に実行される)