Tips Collection - taiclock server & taiclock client


http://quox.org/tips/server/taiclock.html
[ Top > Tips Collection > taiclock server & taiclock client ]


taiclockサーバおよびtaiclockクライアントとは

taiclockサーバは、自分自身のシステム時刻をtaiclockクライアントに通知 する時刻サーバである。また、taiclockクライアントは、taiclockサーバの サービスを使ってシステム時刻を調整するクライアントである。

taiclockサーバであるtaiclockdデーモンは、自分自身のシステム時刻を正し く保つ機能は持っていない。まずは clockspeed などで正確なシステム時刻を確保した上で使用する。


インストール

taiclockサーバ、taiclockクライアントともに、必要なコマンド群は clockspeedパッケージに含まれている。以下の記述はclockspeed-0.62のイン ストール方法である。最新版についての情報は clockspeed本家 を参照されたい。

以下の記述では、インストール先は${prefix}として示してある。例えば /usr/localなど、好みに応じて設定すること。

  1. ソースファイル取得

    wgetコマンドなどで clockspeed-0.62.tar.gz を取ってくる。

  2. 展開
    % tar xvzf clockspeed-0.62.tar.gz
    % cd clockspeed-0.62
      
  3. 設定

    インストール先をconf-homeに、コンパイル方法をconf-ccに、リンク方法 をconf-ldに記述する。

  4. Make
    % make
      

    clockspeedの動作条件 を満たさない環境ではclockspeedの構築に失敗する。その場合は touch clockspeed などとして、clockspeed構築を回避すること。

  5. インストール
    # make setup check
      

taiclockサーバの起動方法

以下のような手順でtaiclockdデーモンを起動する。taiclockdをdaemontools で制御する場合の設定は Tips Collection - daemontools: taiclockd設定例 を参照のこと。

# sh -c 'taiclockd &'

taiclockdは、UDPの4014番ポートからの時刻問い合わせ要求を受け付ける。 もしtaiclockdを起動しているホストでパケットフィルタリングを行っている ならば、taiclockクライアントからのUDPの4014番ポートへの接続を許可する ように設定すること。


taiclockクライアントの起動方法

taiclockクライアントでの時刻合わせは、root権限で手動でtaiclockコマン ドとclockaddコマンドを呼び出すことによって行う。taiclockコマンドの引 数でtaiclockサーバのIPアドレスを指定する。

# taiclock ${taiclock server's ip address} | clockadd

自動で時刻合わせを行うなら、上記のコマンドをcronなどで自動起動するよ うに設定する。

もしtaiclockクライアントでclockspeedを使用しているなら、clockaddコマ ンドではなく clockspeedのadjustファイル を使って時刻合わせを行う。

% taiclock ${taiclock server's ip address} > ${clockspeed prefix}/adjust &

clockaddコマンドで時刻合わせを行うと、時刻を合わせた瞬間はシステム時 刻が不連続に変化してしまう。これに対してclockspeedを用いた場合は、シ ステム時刻が不連続に変化しないよう配慮しながらclockspeedが時刻合わせ を行ってくれる。可能ならば、taiclockクライアントであってもclockspeed を併用する方が望ましい。


構成例

ここでは、LAN内部のホストをtaiclockサーバあるいはtaiclockクライアント として設定し、LAN内の全ホストの時刻合わせを行う方法を紹介する。


関連リンク

Copyright © 2002 Masaki WAKABAYASHI / 若林 正樹.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is here.