データを転送する各 NIS マップをチェックします。
不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。不完全なエントリは、設定を完了した後に追加する方が、不完全なエントリや破損したエントリを転送するよりも簡単です。
NIS+ クライアントにログインする
この作業はどの NIS+ クライアントからでも実行できます。ただし、そのクライアントは、情報の転送先となるテーブルと同じドメインに所属していなければなりません。ここで示す例では、ルートマスターサーバーを使用します。これらの例では、システム管理者はスーパーユーザーとしてログインしているため、この操作を実際に実行している (適切な資格とアクセス権を必要とする) NIS+ 主体は、ルートマスターサーバーです。
このシェルのコマンド検索パスに /usr/lib/nis を追加します。
テーブルごとに /usr/lib/nis/nisaddent コマンドを使用するため、コマンド検索パスに /usr/lib/nis を追加しておくと、毎回これを入力する必要がありません。ここでは、C シェルユーザーの場合の例と Bourne シェルまたは Korn シェルのユーザーの場合の例を示します。
C シェルの場合
rootmaster# setenv PATH $PATH:/usr/lib/nis |
Bourne シェルまたは Korn シェルの場合
rootmaster# PATH=$PATH:/usr/lib/nis rootmaster# export PATH |
nisaddent を使用して、次のマップを 1 度に 1 つずつ転送します。
aliases, bootparams, ethers, group, hosts, netgroup, netmasks, networks, passwd, protocols, rpc, services。
publickey とオートマウンタマップでは、少し手順が異なります。publickey ファイルの場合は手順 6 に、オートマウンタファイルの場合は手順 7 に進んでください。
デフォルトでは、nisaddent はファイル情報をテーブル情報に追加します。置換またはマージを行うには、-r または -m のオプションを使用します。
置換する場合、次のように入力します。
rootmaster# nisaddent -r -y nisdomain table |
追加する場合、次のように入力します。
rootmaster# nisaddent -a -y nisdomain table |
マージする場合、次のように入力します。
rootmaster# nisaddent -m -y nisdomain table |
はじめてテーブルを生成するときに最適なオプションは、デフォルトの -a オプションです。NIS+ テーブルを NIS マップまたは /etc 内のファイルと同期させるための最適なオプションは -m (マージ) オプションです。
-y (小文字) オプションは、テキストファイルではなく、NIS ドメインを示します。nisdomain 引数は、ユーザーが NIS+ テーブルに転送しようとしているマップを持つ NIS ドメインの名前です。実際のマップを指定する必要はありません。nisaddent ユーティリティは、table 引数に対応する NIS マップを自動的に選択します。次に例をいくつか示します。
rootmaster# nisaddent -m -y olddoc hosts rootmaster# nisaddent -m -y olddoc passwd rootmaster# nisaddent -m -y olddoc groups |
最初の例では、olddoc (NIS) ドメイン内の hosts.byname
マップと hosts.byaddr
マップの内容を、ルートドメイン (NIS+) 内の NIS+ hosts テーブルに転送します。2 番目の例では、パスワード関連情報を格納している NIS マップを、NIS+Passwd テーブルに転送します。3 番目の例では、グループ関連情報で同じことを実行します。nisaddent コマンドの詳細については、第 19 章「NIS+ テーブルの管理」を参照してください。
ドメインの cred テーブルには、すでにいくつかの資格が格納されているため、cred テーブルに転送する publickey
マップの内容によって、これらの資格が上書きされないように確認する必要があります。
初めに、publickey
マップをファイルにダンプします。続いて、テキストエディタでそのファイルをオープンします。 たとえば、次のように入力します。
rootmaster# makedbm -u /var/yp/olddoc/publickey.byname \ /etc/publickey.xfr rootmaster# vi /tmp/publickey.tmp |
publickey マップから、ログインしているマシンの資格を削除します。
rootmaster に対しては、次のような行は、すべて削除してください。
unix.rootmaster@doc.com public-key:private-key [alg-type] |
これにより、マップではなく「ファイル」の内容を cred テーブルに転送できます。nisaddent に -a (追加) オプションを付けて実行します。
rootmaster# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir Publickey |
ただし、この操作は DES 資格を cred テーブルに転送するだけです。cred テーブルに対する自分の LOCAL 資格は自分で作成する必要があります。
オートマウンタ情報を転送します。
nissetup ユーティリティは auto_master テーブルと auto_home テーブルを作成しますが、これらは標準の NIS+ テーブルとはみなされません。したがって、これらのテーブルに情報を転送するには、少し異なる構文が必要となります。
rootmaster# nisaddent -y olddoc -Y auto.master -t auto_master.org_dir key-value rootmaster# nisaddent -y olddoc -Y auto.home -t auto_home.org_dir key-value |
NIS ドメイン名 (この例では olddoc) と同様、-m と -y のオプションが必要です。しかし、NIS マップ名 (auto.master
など) の前には -Y (大文字) を付けなければなりません。次に、オートマウンタの「テキストファイル」を転送するときに必要なように、標準の NIS+ テーブルであることを示す -t オプションを使用しなければなりません。この引数は、NIS+ ディレクトリオブジェクト (auto_master.org_dir) とテーブルの種類 (key-value) です。NIS+ テーブル名の後ろには必ず接尾辞 org_dir を追加してください。
nisping を実行して更新内容を複製サーバーに送ります。
nisping を実行すると、複製サーバーに変更が反映されます。
master1# nisping domain master1# nisping org_dir.domaincom. master1# nisping groups_dir.domain |
テーブルに対しチェックポイントを実行します。
この手順により、ドメインをサポートしている全サーバーが、それらの .log ファイルからディスク上のテーブルのコピーに新しい情報を転送します。ルートドメインを設定したばかりの場合、そのルートドメインにはまだ複製サーバーがないため、この手順はルートマスターサーバーだけが対象となります。nisping コマンドに -C (大文字) オプションを付けて実行します。
rootmaster# nisping -C org_dir Checkpointing replicas serving directory org_dir.doc.com. : Master server is rootmaster.doc.com. Last update occurred at July 14, 1994 Master server is rootmaster.doc.com. checkpoint succeeded. |
スワップ空間が不足している場合、サーバーはチェックポイントを正常に実行できませんが、そのことを通知しません。スワップ空間が十分あることを確認する方法として、niscat コマンドを使ってテーブルの内容をリスト表示する方法があります。スワップ空間が不足している場合、次のエラーメッセージが表示されます。
can't list table: Server busy, Try Again. |
このメッセージ内容からはわかりませんが、これはスワップ空間の不足を示しています。スワップ空間を増やし、このドメインに再びチェックポイントを実行します。