Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
9.  NIS の管理 (手順) 既存のマップの更新 デフォルトセットに付いているマップの更新 ypxfr のアクティビティを記録する  戻る   目次   次へ 
   
 

デフォルトでないマップの更新

デフォルトでないマップを更新する場合は、次の手順に従います。

  1. 対応するテキストファイルを作成または編集します。

  2. 新しいマップまたは更新されたマップを作成 (または再作成) します。マップ作成には 2 つの方法があります。

    • Makefile を使用する方法。デフォルトでないマップを作成するには、この方法をお勧めします。Makefile にマップのエントリが存在する場合は、make name を実行するだけです (name は作成するマップ名)。Makefile にマップのエントリが存在しない場合は、Makefile の更新と使用を参照してエントリを作成をしてください。

    • /usr/sbin/makedbm プログラムを使用する方法。このコマンドの詳細については、makedbm(1M) のマニュアルページに説明されています。

デフォルトでないマップを makedbm で更新する

入力ファイルが存在しない場合は、makedbm でマップを更新する方法は 2 つあります。

  • makedbm -u の出力先を一時ファイルに変更し、一時ファイルを更新して更新済みの一時ファイルを makedbm の入力として使用します。

  • makedbm -u の出力を makedbm に渡されるパイプライン内で動作させます。分解されたマップを awksed、または cat で更新できる場合は、この方法をお勧めします。

テキストファイルからマップを新たに作成する

テキストファイル /var/yp/mymap.asc がマスターサーバー上のエディタまたはシェルスクリプトで作成されていると仮定します。この場合、このファイルから NIS マップを作成し、作成された NIS マップを homedomain サブディレクトリに入れるには、マスターサーバー上で次のように入力してください。

# cd /var/yp    
# makedbm  mymap.asc homedomain/ mymap

mymap マップは現在、マスターサーバーの homedomain ディレクトリに存在しています。この新しいマップをスレーブサーバーに転送するには、ypxfr を実行してください。

ファイルをベースとしたマップにエントリを追加する

mymap にエントリを追加することは簡単です。まず、テキストファイル /var/yp/mymap.asc を更新する必要があります。対応するテキストファイルを更新しないで実際の dbm ファイルを更新した場合は、更新内容が失われます。次に、上記のように makedbm を実行してください。

標準入力からマップを作成する

オリジナルのテキストファイルが存在しない場合は、キーボードから makedbm に次のように入力して NIS マップを作成します (最後に Control + D を入力します)。

ypmaster# cd /var/yp

ypmaster# makedbm - homedomain/mymap key1 value1 key2 value2 key3 value3

標準入力から作成されたマップを更新する

後でマップを更新する必要がある場合は、makedbm でマップを分解して一時ファイルを作成できます。マップを分解して一時ファイルを作成するには、次のように入力します。

% cd /var/yp

% makedbm -u homedomain/ mymap> mymap.temp

作成される一時ファイル mymap.temp には、1 行につき 1 つのエントリが存在します。このファイルは、任意のテキストエディタで必要に応じて編集できます。

マップを更新するには、次のように入力して更新後の一時ファイルの名前を makedbm に指定します。

% makedbm mymap.temp homedomain/mymap

% rm mymap.temp

次に root になり、次のように入力してマップをスレーブサーバーに伝播します。

# yppush mymap

ここでは makedbm でマップを作成する方法について説明してきましたが、実際に行わなければならないほとんどすべての作業は、ypinitMakefile で行うことができます。

/var/ypMakefile を使用しても他の手順を使用しても、最終目的は同じです。正しく作成された dbm ファイルの新しいペアをマスターサーバー上の maps ディレクトリに配置しなければなりません。

スレーブサーバーの追加

NIS の実行後、ypinit に指定された初期リストに含まれていなかった NIS スレーブサーバーを作成する必要がある可能性があります。

NIS スレーブサーバーを追加する場合は、次の手順に従います。

スレーブサーバーを追加する方法

  1. スーパーユーザーとしてマスターサーバーにログインします。

  2. NIS ドメインディレクトリに移動します。

    # cd /var/yp/domainname

  3. ypservers ファイルを分解します。

    # makedbm -u ypservers > /tmp/temp_file

    makedbm コマンドは、ypserversndbm フォーマットから一時 ASCII ファイル、/tmp/temp_file に変換します。

  4. テキストエディタで /tmp/temp_file ファイルを編集します。つまり、新しいスレーブサーバー名をサーバーリストに追加します。この後、/tmp/temp_file ファイルを保存し、閉じます。

  5. 入力ファイルに /tmp/temp_file を指定し、出力ファイルに ypservers を指定して、makedbm コマンドを実行します。

    # makedbm /tmp/temp_file ypservers

    makedbm は、ypservers を変換して ndbm フォーマットに戻します。

  6. スレーブサーバーで次のように入力して、ypservers マップが正しいことを確認します (ypservers のASCII ファイルは存在しないため)。

    slave3# makedbm -u ypservers

    makedbm コマンドは、画面に ypservers の各エントリを表示します。


    注 - ypservers にマシン名が存在しない場合は、ypservers はマップファイルの更新を受信しません。これは、yppush がこのマップでスレーブサーバーリストを調べるからです。


  7. マスターサーバーから NIS マップのセットをコピーして新しいスレーブサーバーの NISドメインディレクトリを設定します。

    この操作を行うには、新しい NIS スレーブサーバーでスーパーユーザーとなり、ypinit および ypbind コマンドを実行します。

    slave3# cd /var/yp

    slave3# ypinit -c

    <サーバーのリスト>

    slave3# /usr/lib/netsvc/yp/ypbind

  8. このマシンをスレーブサーバーとして初期設定します。

    slave3# /usr/sbin/ypinit -s ypmaster

    ypmaster は、既存の NIS マスターサーバーのマシン名です。

  9. ypstop を実行して、NIS クライアントとして実行されているマシンを停止します。

    # /usr/lib/netsvc/yp/ypstop

  10. ypstart を実行して、NIS スレーブサーバーのサービスを開始します。

    # /usr/lib/netsvc/yp/ypstart

 
 
 
  戻る   目次   次へ