RPC.YPXFRD(8)

名称
rpc.ypxfrd - NIS マップ転送サーバ

書式
rpc.ypxfrd [-p path]

解説
rpc.ypxfrd デーモンは NIS マスタサーバから NIS スレーブサーバへの巨大な NIS マップの配布を高速化するためのに使われます。通常、マップの転送はいくつ かの手順を経ます:

•   マスタサーバが yppush(8) を呼び出し、スレーブサーバが転送を開始するよう指示します。

•   スレーブサーバは、 ypxfr(8) を起動します。 ypxfr(8) は、マスタサーバから yp_all() を使ってマップの内容をすべて読みます。

•   次に ypxfr(8) は、 db(3) ライブラリを使ってサーバから受け取ったデータをハッシュし新しいマップ データベースファイルを作成します。

•   全てのデータを書き終えてから、 ypxfr(8) は、新しいファイルを置き換え、ローカルマシンの ypserv(8) 宛にデータベースハンドルを更新するよう YPPROC_CLEAR を送ります。

巨大なマップが含まれている場合、この処理に数分かかることがあります。 たとえば、数万のエントリのあるパスワードデータベースでは、数メガバイト のディスクを消費し、 db(3) ライブラリがハッシュテーブルに全てのエントリをソートし納めるのに 長時間かかります。さらに、マップファイルは2セットあります: master.passwd.by{name,uid} と passwd.by{name,uid} です。

rpc.ypxfrd サーバは NIS スレーブサーバがマスターサーバのマップファイルを コピーし、マップファイルの構築を行わないことで、転送処理を高速化し ます。 rpc.ypxfrd は、単に RPC ベースのファイル転送プロトコルを実装しているだけです。 十分に高速なスレーブサーバが数メガバイトのファイルからマップを構築する のに数分かかるのにたいし、転送では数秒しかかかりません。

rpc.ypxfrd サーバは、 ypserv(8) と同じアクセス制限メカニズムを使っています。 したがって、 securenets(5) データベースで許されているスレーブサーバのみがファイルを転送できます。 さらに、reserved ポートを使うスレーブサーバのみが、 master.passwd マップを転送することを許されています。

オプション
オプションは以下の通りです:

-p path
    このオプションにより、デフォルトの NIS データベースへのパスを変更しま す。デフォルトパスは、 /var/yp です。

関連ファイル
/var/yp/[domainname]/[maps]
    ある NIS ドメインの NIS マップ群。

関連項目
yp(4), yppush(8), ypserv(8), ypxfr(8)

バグ
FreeBSD の rpc.ypxfrd プロトコルは SunOS で使われているものと互換性がありません。これは残念な ことではありますが、避けることが出来ません: Sun のプロトコルは 自由に入手することは出来ず、さらに入手できたとしても、 SunOS NIS v2 の実装ではマップデータベースに ndbm パッケージを使ってお り、 FreeBSD の実装で使われている Berkeley DB パッケージではないため不便です。 これらの二つのパッケージ間のフォーマットは非常に異なっています。 さらに、 ndbm はバイトオーダの問題があり、ビッグエンディアンのシステムで 作った ndbm データベースはリトルエンディアンのシステムでは読むことが出来 ません。

作者
Bill Paul <wpaul@ctr.columbia.edu>