EN JA
YPXFR(8)
YPXFR(8) FreeBSD System Manager's Manual YPXFR(8)

名称

ypxfrリモートのサーバからローカルホストへ NIS データベースを転送する

書式

/usr/libexec/ypxfr [ -f][ -c][ -d target domain][ -h source host][ -s source domain][ -p path][ -C taskid program-number ipaddr port] mapname

解説

ypxfr ユーティリティは、 NIS データベース (または、 マップ) を NIS サービスを使用し、ある NIS サーバから別のサーバにコピーします。 FreeBSD では、一般に、 ypxfr は、 yppush(8) からマップ転送要求を受け取った ypserv(8) から起動されます。基本的に、 ypxfr ユーティリティを使用するのは、単一ドメイン内で複数の NIS サーバが使用される環境です。一台のサーバ (NIS マスタ) は、全ての NIS マップの基準となるコピーを管理します。その他のサーバ (NIS スレーブ) は、マップに更新があったとき (例えば、ユーザが yppasswd(1) を用いてパスワードを更新したとき) に、新しいバージョンのマップをマスタからコピーします。

実行時、 ypxfr は、一時データベースファイルを /var/yp/[domainname] に作成し、指定された source host により提供される mapname の内容で埋めます。マップ全体の転送が完了すると、 ypxfr は、 mapname の古いコピーを消去し、代わりに一時ファイルを置きます。転送完了時に、 ypxfr は、`現在のマップのクリア' 要求を、ローカルの ypserv(8) プロセス宛に送信し、古いマップを参照している場合にはクリアさせようとします。

ypxfr が作成した全てのファイルが所有者のみ読み書き可能なのは、セキュリティのためである事に注意して下さい。 NIS マップとそれを格納するディレクトリは、通常 root が所有しますので、非特権ユーザによる権限の無い変更を防ぎます。

全ての NIS サーバ間で一貫性を保持するために ypxfrcron(8) ジョブとして定期的に実行する事が出来ます。ほとんど変更されないマップは、1 日 1 度 (システム使用率が一番低い深夜が望ましいでしょう) 更新すれば良いですが、頻繁に変更されるマップ (例えば passwd.bynamepasswd.byuid) は、おそらく 1 時間に 1 度更新すべきでしょう。 cron(8) を使用し NIS マップを自動的に更新する事は、厳密には必須ではありません。なぜなら、全ての更新は、 NIS マスタサーバ上で /var/yp/Makefile が実行された時に yppush(8) にて伝搬されているはずだからです。ただし、通信不能となって NIS サーバ間で同期が取れなくなる事があるような大きなネットワークでは、良い実現方式です。

ypxfr が制御端末無しで起動された場合、例えば ypserv(8) 内部から起動された場合には、 syslog(3) 機構を使用して、全ての出力のログを取ります。

FreeBSD バージョンの ypxfr は、 FreeBSDrpc.ypxfrd(8) サーバと連動する特別なマップ転送プロトコルをサポートします。このプロトコルは、生のマップデータベースファイルを NIS マスタサーバから転送する事を許しますので、特に大きな NIS マップの場合は、標準の転送方法よりも数倍高速です。 ypxfr ユーティリティは、 NIS マスタサーバ上に rpc.ypxfrd(8) が登録されているかをチェックし、存在する場合には、これを使用しようとします。存在しない場合には、標準プロトコルを使用し、 ypserv(8) からマップの内容をコピーし、新たなマップを作成します。

概念的には、 FreeBSD の ypxfrd プロトコルは、 SunOS の ypxfrd プロトコルと同じですが、 FreeBSD のプロトコルは、SunOS のプロトコルとは互換ではないため、 Sun の ypxfrd サーバとともに使用する事は出来ない事に注意して下さい。 FreeBSD のスレーブは、非 FreeBSD の NIS サーバからマップを転送する事が出来ますが、高速プロトコルを使用できるのは、マスタサーバも FreeBSD の場合だけです。

オプション

ypxfr がサポートするオプションは、以下の通りです:
-f
マップ転送を強制します。通常、 NIS マスタ上のコピーがローカルホスト上にあるコピーよりも新しくない場合には、 ypxfr は、マップを転送しません: -f フラグにより、サーバ上のバージョンが新しいか否かにかかわらず、転送します。
-c
ローカルホスト上で実行されている ypserv(8) プロセス宛に `現在のマップのクリア' 要求を送信しません。このフラグは、通常 ypserv(8) を実行していないマシン上で ypxfr を手動で起動する時に使用します。このフラグを指定しないと、ローカルの NIS サーバと通信できないために、 ypxfr は、転送を中止します。
-d target domain
現在の NIS ドメインではない別のドメイン名を指定します。
-h source host
NIS マップのコピー元のホスト名を指定します。このオプションにより ypxfr が NIS マスタサーバからのみマップをコピーする事を保証できます。
-s source domain
マップの転送元のドメインを指定します。これは、2 つの NIS ドメイン間で転送を行う時に有用です。
-p path
NIS マップを保持する最上位ディレクトリを指定します。デフォルトでは、このパスは、 /var/yp です。 -p フラグにより別のパスを指定し、 NIS マップを別の場所に格納する場合に対処できます。 NIS サーバ ypserv(8) が別のパスを使用するように指示された場合にも、このフラグを ypxfr に渡します。
-C taskid program-number ipaddr port
yppush(8) によるマップ転送要求への応答として、 ypxfrypserv(8) から起動された場合にのみ、このオプションは、使用されます。この場合、 ypxfr は、 yppush(8) を `コールバック' して通信する必要がありますので、 yppush(8) は、IP アドレス ipaddr、ポート番号 port、登録プログラム番号(registered program number) program-number、トランザクション ID taskid を渡し、マスタサーバ上で待っている yppush(8) プロセスと通信出来るようにします。
mapname
転送するマップを指定します。

関連ファイル

/var/yp/[domainname]/[maps]
ある NIS ドメインの NIS マップ。

関連項目

yp(8), ypserv(8), yppush(8)

作者

Bill Paul <wpaul@ctr.columbia.edu>
February 5, 1995 FreeBSD