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 サーバ間で一貫性を保持するために ypxfr を cron(8) ジョブとして定期的に実行する事が出来ます。ほとんど変更されないマップは、1 日 1 度 (システム使用率が一番低い深夜が望ましいでしょう) 更新すれば良いですが、頻繁に変更されるマップ (例えば passwd.byname や passwd.byuid) は、おそらく 1 時間に 1 度更新すべきでしょう。 cron(8) を使用し NIS マップを自動的に更新する事は、厳密には必須ではありません。なぜなら、全ての更新は、 NIS マスタサーバ上で /var/yp/Makefile が実行された時に yppush(8) にて伝搬されているはずだからです。ただし、通信不能となって NIS サーバ間で同期が取れなくなる事があるような大きなネットワークでは、良い実現方式です。
ypxfr が制御端末無しで起動された場合、例えば ypserv(8) 内部から起動された場合には、 syslog(3) 機構を使用して、全ての出力のログを取ります。
注
FreeBSD バージョンの ypxfr は、 FreeBSD の rpc.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) によるマップ転送要求への応答として、 ypxfr が ypserv(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 マップ。
作者
<wpaul@ctr.columbia.edu>February 5, 1995 | FreeBSD |