tail head cat sleep
QR code linking to this page

manページ  — YPXFR

名称

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

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

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

全ての NIS サーバ間で一貫性を保持するために ypxfrcron(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) によるマップ転送要求への応答として、 ypxfrypserv(8) から起動された場合にのみ、このオプションは使用されます。 この場合、 ypxfryppush(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>

YPXFR (8) February 5, 1995

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。

Do you laugh when the waiter drops a tray full of dishes? Unix weenies do. They're the first ones to laugh at hapless users, trying to figure out an error message that doesn't have anything to do with what they just typed.
— The Unix Haters' handbook