書式
/usr/lib/yp/ypxfr [ -f ] [ -c ] [ -d target domain ][ -h source host ] [ -s source domain ]
[ -C taskid program-number ipaddr port ]
[ -p yp_path ] mapname ...
説明
ypxfr は NIS データーベースを NIS サーバーからローカルホストに NIS サービスを用いてコピーする。 ypxfr は通常 ypinit から起動されるか、 yppush からマップ転送要求を受け取った ypserv によって起動される。 ypxfr は一時的なマップを /var/yp/domain ディレクトリに生成し (このディレクトリは存在していなければならない。 domain はローカルホストのデフォルトドメイン名である)、 そのマップのエントリを取得して内容を書き込み、マップのパラメータ (マスターとオーダー番号) を取得する。 転送が成功したら、古いバージョンのマップは削除され、 この一時的なマップの内容がそこに書き込まれる。 次に ypxfr は "clear current map" 要求をローカルの ypserv に送ろうと試みる。インタラクティブな形式で実行されると、 ypxfr は出力を標準エラー出力に書き出す。しかし制御端末なしで 起動された場合には、出力は syslog に記録される。
ypxfr が用いられるのは、複数の NIS サーバーが用いられているような 環境においてである。あらゆるマップに対して、そのマップの原本を 保持している NIS マスターサーバーが一つだけ存在する。他のサーバは すべて NIS スレーブサーバーとなり、マスターサーバーでマップが 更新されるたびに、新しい版のマップをコピーする。 通常は一台の NIS サーバーにすべてのマップの管理を集中させる。
これらすべての NIS サーバーの間でマップの内容を一致させておくためには、 ypxfr を cron ジョブとして定期的に動作させると良い。あまり変更されないマップは 一日に一回更新すればよいだろうし (システムの使用率が最低となるような 夜遅くが好まれる)、頻繁に変更されるマップ ( passwd.byname や passwd.byuid など) は一時間に一回くらい更新する必要があるかもしれない。 これらの例は /usr/lib/yp の ypxfr_1perday, ypxfr_2perday, ypxfr_1perhour などに示してある。とりあえず動かしてみるには、 これらを用いてみると良いだろう。
NIS マスターサーバーで /var/yp/Makefile が実行されたら、 通常はその更新内容を yppush を用いて伝播させるべきである。 しかし大きなネットワークの場合には、通信障害などによって NIS スレーブの同期がマスターとずれることもあるだろうから、 このように ypxfr を使うのは良いことである。
オプション
以下のオプションがサポートされている。- -f
- マップの転送を強制する。通常の動作では、 NIS マスターにあるマップがローカルホストにすでに存在するコピーよりも 新しくないと判断されると、 ypxfr はマップの転送を行わない。このフラグを指定すると、 どのサーバーの版が最新であるかを問わず、強制的に転送が行われる。
- -c
- ローカルで動作している ypserv プロセスに "clear current map" 要求を送らない。 ypxfr が ypinit から起動された場合や、 ypxfr の起動時に ypserv が動作していない場合などには通常このフラグを指定する。さもないと ypxfr はローカルの ypserv と通信できない旨のエラーを出し、転送は失敗する。
- -d domain
- デフォルトの NIS ドメインの代わりに用いるドメインを指定する。
- -h source host
- マップに書かれているマスターの情報を無視して、マップを host から取得する。 host が指定されない場合には、 ypxfr は NIS サービスにマスターの名前を問い合わせて、そこからマップを取得しようとする。 このオプションは ypxfr がマップの取得先とする NIS マスターサーバーを保証するために用いられる。
- -s source domain
- マップの取得先とするソースドメインを指定する。 そのマップをドメインを通して同じものとしたい場合に有効。
- -C taskid progam-number ipaddr port
- このオプションは ypserv によってのみ用いられる。 ypserv が ypxfr を起動するときに、 ypxfr が yppush プロセスをコールバックする先 ( IP アドレス ipaddr のホストの、予約済みプログラム番号 progam-number、 ポート番号 port が、トランザクション taskid へのレスポンスを待っている) を指定する。
- -p yp_path
- マップのディレクトリを yp_path/[domainname] に変更する。デフォルトは /var/yp/[domainname] である。
- mapname
- 転送するマップの名前を指定する (複数指定可)。