説明
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 を使うのは良いことである。