RPC.YPXFRD(8) | FreeBSD System Manager's Manual | 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 データベースの規則がそれを許すなら、 ( securenets の詳細については ypserv(8) を参照してください) スレーブサーバのみがファイルを転送できることを意味します。さらに、reserved ポートを使うスレーブサーバのみが、 master.passwd マップを転送することを許されています。
オプション
オプションは以下の通りです:- -p path
- このオプションにより、デフォルトの NIS データベースへのパスを変更します。デフォルトパスは、 /var/yp です。
関連ファイル
- /var/yp/[domainname]/[maps]
- ある NIS ドメインの NIS マップ群。
作者
<wpaul@ctr.columbia.edu>バグ
FreeBSD の ypxfrd プロトコルは SunOS で使われているものと互換性がありません。これは残念なことではありますが、避けることが出来ません: Sun のプロトコルは自由に入手することは出来ず、さらに入手できたとしても、 SunOS NIS v2 の実装ではマップデータベースに ndbm パッケージを使っており、 FreeBSD の実装で使われている Berkeley DB パッケージではないため不便です。これらの二つのパッケージ間のフォーマットは非常に異なっています。さらに、ndbm はバイトオーダの問題があり、ビッグエンディアンのシステムで作った ndbm データベースはリトルエンディアンのシステムでは読むことが出来ません。June 2, 1996 | FreeBSD |