ypxfr - NIS
データーベースをリモートサーバーからローカルホストに転送する
/usr/lib/yp/ypxfr [
-f ] [
-c ] [
-d target
domain ] [
-h source host ] [
-s source domain
] [
-C taskid program-number ipaddr port ] [
-p yp_path ] mapname ...
ypxfr は NIS
データーベースを NIS
サーバーからローカルホストに
NIS
サービスを用いてコピーする。
ypxfr は通常
ypinit
から起動されるか、
yppush
からマップ転送要求を受け取った
ypserv
によって起動される。
ypxfr
は一時的なマップを
/var/yp/domain
ディレクトリに生成し
(このディレクトリは存在していなければならない。
domain
はローカルホストのデフォルトドメイン名である)、
そのマップのエントリを取得して内容を書き込み、マップのパラメータ
(マスターとオーダー番号)
を取得する。
転送が成功したら、古いバージョンのマップは削除され、
この一時的なマップの内容がそこに書き込まれる。
次に
ypxfr は "clear current map"
要求をローカルの
ypserv
に送ろうと試みる。
インタラクティブな形式で実行されると、
ypxfr
は出力を標準エラー出力に書き出す。しかし制御端末なしで
起動された場合には、出力は
syslog に記録される。
ypxfr
が用いられるのは、複数の
NIS
サーバーが用いられているような
環境においてである。あらゆるマップに対して、そのマップの原本を
保持している NIS
マスターサーバーが一つだけ存在する。他のサーバは
すべて NIS
スレーブサーバーとなり、マスターサーバーでマップが
更新されるたびに、新しい版のマップをコピーする。
通常は一台の NIS
サーバーにすべてのマップの管理を集中させる。
これらすべての NIS
サーバーの間でマップの内容を一致させておくためには、
ypxfr を
cron
ジョブとして定期的に動作させると良い。あまり変更されないマップは
一日に一回更新すればよいだろうし
(システムの使用率が最低となるような
夜遅くが好まれる)、頻繁に変更されるマップ
(
passwd.byname や
passwd.byuid など)
は一時間に一回くらい更新する必要があるかもしれない。
これらの例は
/usr/lib/yp の
ypxfr_1perday,
ypxfr_2perday,
ypxfr_1perhour
などに示してある。とりあえず動かしてみるには、
これらを用いてみると良いだろう。
NIS マスターサーバーで
/var/yp/Makefile
が実行されたら、
通常はその更新内容を
yppush
を用いて伝播させるべきである。
しかし大きなネットワークの場合には、通信障害などによって
NIS
スレーブの同期がマスターとずれることもあるだろうから、
このように
ypxfr
を使うのは良いことである。
以下のオプションがサポートされている。
- -f
- マップの転送を強制する。通常の動作では、
NIS
マスターにあるマップがローカルホストにすでに存在するコピーよりも
新しくないと判断されると、
ypxfr
はマップの転送を行わない。このフラグを指定すると、
どのサーバーの版が最新であるかを問わず、強制的に転送が行われる。
- -c
- ローカルで動作している
ypserv プロセスに "clear current
map" 要求を送らない。
ypxfr が ypinit
から起動された場合や、
ypxfr の起動時に ypserv
が動作していない場合などには通常このフラグを指定する。さもないと
ypxfr はローカルの
ypserv
と通信できない旨のエラーを出し、転送は失敗する。
-
-d domain
- デフォルトの NIS
ドメインの代わりに用いるドメインを指定する。
-
-h source host
- マップに書かれているマスターの情報を無視して、マップを
host から取得する。
host
が指定されない場合には、
ypxfr は NIS
サービスにマスターの名前を問い合わせて、そこからマップを取得しようとする。
このオプションは
ypxfr
がマップの取得先とする
NIS
マスターサーバーを保証するために用いられる。
-
-s source domain
- マップの取得先とするソースドメインを指定する。
そのマップをドメインを通して同じものとしたい場合に有効。
-
-C taskid progam-number ipaddr port
- このオプションは
ypserv
によってのみ用いられる。
ypserv が ypxfr
を起動するときに、
ypxfr が yppush
プロセスをコールバックする先
( IP アドレス ipaddr
のホストの、予約済みプログラム番号
progam-number、 ポート番号
port
が、トランザクション
taskid
へのレスポンスを待っている)
を指定する。
-
-p yp_path
- マップのディレクトリを
yp_path/[domainname]
に変更する。デフォルトは
/var/yp/[domainname] である。
- mapname
- 転送するマップの名前を指定する
(複数指定可)。
/var/yp/[domainname]/[maps]
ypserv(8),
yppush(8),
ypinit(8),
cron(8),
crontab(5)
Thorsten Kukuk <
[email protected]>