rdist コマンド

本書では、/usr/bin/rdist ファイルにある古い AIX® rdist コマンドと、新しい rdistd デーモンと一緒に使用される新しい /usr/sbin/rdist コマンドについて説明します。

/usr/bin/rdist コマンド

目的

リモート・ファイル配布クライアント・プログラム。

構文

配布ファイルを使用する

rdist-n ] [  -q ] [  -b ] [  -D ] [  -R ] [  -h ] [  -i ] [  -v ] [  -w ] [  -y ] [  -f FileName ] [  -d Argument=Value ] [  -m Host ] ... [ Name ] ...

引数を小型の配布ファイルとして解釈する

rdist-n ] [ -q ] [ -b ] [ -D ] [ -R ] [ -h ] [ -i ] [ -v ] [ -w ] [ -y ] -c Name ... Login] Host:Destination ]

説明

重要: rdist コマンドを使用して、AIX 以外のマシンに 2 ギガバイトより大きいサイズのファイルを送信しないでください。 送信すると、未定義の振る舞いという結果となり、まれにデータが失われることがあります。

rdist コマンドは、複数のホスト上でファイルの同一のコピーを維持します。rdist コマンドは、オーナー、グループ、モード、および可能であればファイルの変更時刻を保存し、さらに実行中のプログラムも更新できます。rdist コマンドは、以下のソースから指示を受け取ることができます。

  • デフォルトの配布ファイル、すなわちユーザーの $HOME ディレクトリー内の distfile ファイル
  • -f フラグで指定する別の配布ファイル
  • 配布ファイルの変数定義を追加または上書きするコマンド・ラインの引数
  • 小型の配布ファイルとして機能するコマンド・ラインの引数

-f フラグを使用しないと、rdist コマンドは、ユーザーの $HOME ディレクトリー内の distfile ファイルを探します。distfile ファイルが見つからない場合は、Distfile ファイルを探します。

Name パラメーターで指定した値は、更新するファイルまたは実行するサブコマンドの名前として読み取られます。コマンド・ラインに Name パラメーターの値を指定しないと、rdist コマンドは配布ファイルにリストされたすべてのファイルおよびディレクトリーを更新します。Name パラメーターに - (負符号) を指定すると、rdist コマンドは標準入力を使用します。Name パラメーターで指定したファイルの名前がサブコマンドの名前と同じ場合は、 rdist コマンドは Name パラメーターをサブコマンドと見なします。

rdist コマンドでは、.rhosts ファイルを各ホスト上で構成する必要があります。詳しくは、『TCP/IP のファイル・フォーマット』( ファイル参照) を参照してください。

注:
  1. rdist コマンドがリモート・コンピューターの /usr/bin/rdist ディレクトリーに入っていない場合は、/usr/bin/rdist ディレクトリーから rdist コマンドの実際の位置へのリンクを作成してください。この位置は、通常はディレクトリー /usr/ucb/rdist です。
  2. 現在、rdist コマンドは 7 ビットの ASCII ファイル名しか処理できません。

フラグ

項目 説明
-b バイナリー比較を実行して、両者が異なる場合はファイルを更新します。
-c rdist コマンドに残りの引数を小型配布ファイルとして解釈させます。以下の引数が使用可能です。
名前
単一の名前、またはブランクで区切られた名前のリストです。値としてファイルまたはサブコマンドが使えます。
[Login@]Host
更新対象となるコンピューターを指定し、オプションとして更新通知先のログイン名を指定します。
Destination
Name 引数に単一の名前を指定した場合は、リモート・コンピューター上のファイルを指定します。複数の名前を指定した場合は、ディレクトリーを指定します。
注: -c フラグを -f-d、または -m フラグと併用しないでください。
-d Argument=Value Argument 変数の値が Value 変数であることを定義します。-d フラグは、distfile ファイル内の変数定義を定義または上書きします。Value 変数は、空文字列、単一の名前、または括弧で囲まれ、タブまたはスペースで区切られた名前のリストとして指定できます。
-D デバッグ出力をオンにします。
-f FileName 配布ファイルの名前を指定します。-f フラグを使用しなかった場合、デフォルト値は $HOME ディレクトリーの distfile ファイルまたは Distfile ファイルとなります。
-h リンク自体ではなく、リンクが指すファイルをコピーします。
-i 未解決のリンクを無視します。rdist コマンドは、転送中のファイルのリンク構造を維持し、すべてのリンクを見つけられなければ、ユーザーに警告します。
-m Host 更新対象となるコンピューターを制限します。-m Host オプションを複数回使用して、更新対象を distfile ファイル内にリストされたホストのサブセットに制限することができます。
-n サブコマンドを実行せずに印刷します。-n フラグを使用して distfile ファイルをデバッグします。
-q 抑止モードで操作します。-q オプションは、標準出力への修正済みファイルの出力を抑制します。
-R 無関係のファイルを除去します。ディレクトリーを更新中であれば、リモート・ホスト上に存在してマスター・ディレクトリー内に存在しないファイルが除去されます。-R フラグは、ディレクトリーの同一コピーを維持するときに使用します。
-v ファイルがすべてのホスト上で最新の状態になっているかどうか検査します。古くなったファイルが表示されます。ただし、rdist -v コマンドを実行しても、ファイルは変更されず、メールも送信されません。 このフラグを -b フラグと一緒に使用すると、このフラグが -b フラグをオーバーライドします。
-y ファイルの最新のコピーが古くなったファイルで置換されないようにします。一般に、タイム・スタンプとサイズが異なる場合にファイルが更新されます。 -y フラグは、rdist コマンドがマスター・ファイルよりも新しいファイルを更新しないようにします。
-w ファイルのパス名全体を宛先ディレクトリー名に追加します。通常、ファイル名を変更してコピー済みファイルのディレクトリー構造を保存するときに rdist コマンドが使用するのは、名前の最後のコンポーネントのみです。 ~ (ティルド) で始まるファイル名に -w フラグを使用すると、ホーム・ディレクトリー以外のすべてが宛先名に追加されます。/ (斜線) または ~ (ティルド) で始まらないファイル名は、宛先ユーザーのホーム・ディレクトリーを残りのファイル名のルート・ディレクトリーとして使用します。

配布ファイル (distfile ファイル)

配布ファイルは、コピーするファイル、配布の宛先ホスト、および rdist コマンドで配布するファイルの更新時に実行する操作を指定します。通常、rdist コマンドは、$HOME ディレクトリーの distfile ファイルを使用します。-f フラグを使用すると、別のファイルを指定できます。

入力フォーマット

配布ファイルの各エントリーは、以下のいずれかのフォーマットを取ります。

項目 説明
VariableName NameList 配布ファイルのほかのエントリーに使用する変数 (SourceListDestinationList、または SubcommandList) を定義します。
[Label:SourceList -> DestinationList SubcommandList rdist コマンドに対して、SourceList 変数で指定したファイルを DestinationList 変数で指定したホストに配布するよう指示します。配布ファイルのコマンドは追加機能を実行します。
[Label:SourceList :: TimeStampFile SubcommandList rdist コマンドに対して、指定日以降に変更があったファイルを更新するよう指示します。配布ファイルのサブコマンドは追加機能を実行します。 SourceList 変数で指定した各ファイルは、タイム・スタンプ・ファイルよりも新しければ更新されます。このフォーマットは、ファイルの復元に役立ちます。

ラベルの指定は任意で、部分的な更新の際にサブコマンドを識別するために使用します。

エントリー

項目 説明
VariableName 配布ファイル内で使用する変数を識別します。
NameList ファイルおよびディレクトリー、ホスト、またはサブコマンドのリストを指定します。
SourceList 配布用のマスター・コピーとして使用する、rdist コマンド用のローカル・ホスト上のファイルおよびディレクトリーを指定します。
DestinationList ホストにファイルのコピーを受信するよう指示します。
SubcommandList 実行する配布ファイルのサブコマンドをリストします。

rdist コマンドでは、改行文字、タブ、およびブランクをセパレーターとして扱います。 展開用の配布ファイル変数は、$ (ドル記号) で始まり、その後に単一文字または {} (中括弧) で囲まれた名前が続きます。 注釈は # (ポンド記号) で始まり、改行文字で終わります。

ソース・リストおよび宛先リストのフォーマット

配布ファイルのソース・リストおよび宛先リストは、以下に示したフォーマットで示されるように、ブランクで区切られたゼロまたは複数の名前から構成されます。

[Name1] [Name2] [Name3] ...

rdist コマンドは、csh コマンドの場合と同様に、ローカル・ホスト上で以下のシェル・メタキャラクターを認識して展開します。

  • [ (左大括弧)
  • ] (右大括弧)
  • { (左中括弧)
  • } (右中括弧)
  • ( (左括弧)
  • ) (右括弧)
  • * (アスタリスク)
  • ? (疑問符)

これらの文字が展開されないようにするには、文字の前に ¥ (円記号) を付けます。 さらに、 rdist コマンドは、 csh コマンドの場合と同様に、~ (ティルド) も展開しますが、ローカル・ホスト上および宛先ホスト上で別々に展開します。

配布ファイルのサブコマンド

シェルへの複数のコマンドは、; (セミコロン) で区切る必要があります。コマンドは、更新されるホスト上のユーザーのホーム・ディレクトリー内で実行されます。 プログラムを更新した後で専用データベースを再構築するときには、special サブコマンドを使用できます。

配布ファイルのサブコマンド・リストには、以下のサブコマンドをゼロ個以上入れることができます。

項目 説明
install Options [OptionalDestName]; 古いファイルおよびディレクトリーをコピーします。rdist コマンドは、各ソース・ファイルまたはソース・ディレクトリーを宛先リスト内の各ホストにコピーします。Options 変数で指定する使用可能なオプションは、rdist コマンド・フラグ -b-h-i -R -v-w、および -y です。これらのオプションは、SourceList 変数で指定したファイルにだけ適用されます。-R フラグを使用すると、対応するファイル名がマスター・ホスト上になければ、空でないディレクトリーが除去されます。OptionalDestName パラメーターはファイル名を変更します。

install サブコマンドがサブコマンド・リストにない場合、または宛先名を指定していない場合には、ソース・ファイル名が使用されます。リモート・ホスト上に存在しない場合には、パス名の下にディレクトリーが作成されます。 宛先ホストで使用するログイン名は、宛先名のフォーマットが login@host でなければ、ローカル・ホストと同じです。

notify NameList; 更新ファイル、およびリストされた名前 (NameList パラメーター) に生じる可能性のあるエラーのリストをメールします。名前に @ (アットマーク) がなければ、宛先ホストがその名前に追加されます (name@host)。
except NameList; rdist コマンドは、NameList 変数で指定したファイルを除き、SourceList エントリーで指定したすべてのファイルを更新します。
except_pat NameList; rdist コマンドが、NameList 変数で指定したリストのメンバーと一致する文字列を含むすべてのファイルを更新しないようにします。
special NameList "String "; NameList 変数で指定したファイルの更新またはインストール後にリモート・ホスト上で実行するシェル・コマンド ("String" 変数) を指定します。NameList 変数を省略すると、シェル・コマンドは更新またはインストールされたすべてのファイルに対して実行されます。シェル変数 FILE は、rdist コマンドが "String" 変数を実行する前に、現行ファイル名に設定されます。"String" 値は、" " (二重引用符) で囲む必要があり、配布ファイル内で複数行に渡って指定できます。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生したことを示します。

フォーマット: VariableName = NameList の例

  1. 更新するホストのファイルを指定するには、以下のような行を入力します。
    HOSTS =( matisse root@arpa )
    ここで、HOSTS 変数は、matisse および root@arpa として定義されます。rdist コマンドは、ホスト matisse および root@arpa 上のファイルを更新します。この変数を宛先リストとして使用することもできます。
  2. SourceList エントリーの値として使用する名前を指定するには、以下のような行を入力します。
    FILES = ( /bin /lib/usr/bin /usr/games
        /usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
           /usr/lib /usr/man/man? /usr/ucb /usr/local/rdist )
    ここで、FILES の値は、SourceList エントリーに使用するファイルとして定義されます。
  3. 更新処理から除外するファイルを指定するには、以下のような行を入力します。
    EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
        sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont)
    ここで、EXLIB の値は、更新処理から除外するファイルのリストとして定義されます。
  4. /usr/src/bin から arpa にすべてのファイルをコピーして、namelist 変数を拡張し、それにより namelist 変数内にあるファイルと、拡張として .o を持つファイル以外の全ファイルがコピーされるようにするには、以下のような行を入力します。
    /usr/src/bin ->arpa
    except_pat(¥e¥e.o¥e ${<namelist> /SCCS¥e ${<namelist>}

    または

    /usr/src/bin ->arpa
    except_pat(¥¥.o¥e ${<namelist> /SCCS¥e ${<namelist>}
  5. .o という拡張を持つファイル以外のすべてのファイルを /usr/src/bin から arpa にコピーするには、以下のような行を入力します。
    /usr/src/bin ->arpa
    except_pat(¥¥.o¥$ /SCCS¥$

フォーマット: [label:] SourceList - DestinationList SubcommandList の例

  1. ファイルのソース・リストをホストの宛先リストにコピーするには、以下のような行を入力します。
    ${FILES} ->${HOSTS}
        install -R
        except /usr/lib/${EXLIB}  ;
        except /usr/games/lib  ;
        special /usr/sbin/sendmail "/usr/sbin/sendmail.bz"  ;
    上記の行で、[Label:] エントリーの指定は、任意であるため、ここには表示してありません。$ (ドル記号) および {} (中括弧) によって、ファイル名 FILESHOSTS、および EXLIB が前の例で指定したリストに展開されます。この例の残りの部分は、サブコマンド・リストを構成します。
  2. [Label:] エントリーを使用するには、以下のような行を入力します。
    srcsL:
    /usr/src/bin -> arpa
        except_pat (¥e¥e.o¥e$ /SCCS¥e$ ) ;

    ラベルは srcsL: で、更新の際にこのエントリーの識別に使用できます。/usr/src/bin ファイルはコピー元のソースで、ホスト arpa はコピーの宛先です。3 行目は、サブコマンド・リストからのサブコマンドです。

  3. タイム・スタンプ・ファイルを使用するには、以下のような行を入力します。
    ${FILES} :: stamp.cory
        notify root@cory
    $ (ドル記号) および {} (中括弧) によって FILES で指定した名前が、例で指定したリストに展開されます。タイム・スタンプ・ファイルは stamp.cory です。最終行は、サブコマンド・リストからのサブコマンドです。

ファイル

項目 説明
/usr/bin/rdist rdist コマンドが入っています。
$HOME/distfile rdist コマンドが読み取るサブコマンドのリストが入っています。
/tmp/rdist 更新リストが入っています。これは一時ファイルです。

/usr/sbin/rdist コマンド

本書では、/usr/bin/rdist ファイルにある古い AIX rdist コマンドと、新しい rdistd デーモンと一緒に使用される新しい /usr/sbin/rdist コマンドについて説明します。

目的 (/usr/sbin/rdist)

ファイルをリモート側で配布するクライアント・プログラム

構文 (/usr/sbin/rdist)

配布ファイルを使用する

/usr/sbin/rdist [ -F n ] [ -A num ] [ -a num ] [ -d var=value] [ -l < local logopts> ] [ -L <remote logopts> ] [ -f distfile] [ -M maxproc -m host ] [ -o distops ] [ -t timeout ] [ -p <rdist-path> ] [ -P <transport-path> ] [ name ... ]

引数を小型の配布ファイルとして解釈する

/usr/sbin/rdist -Fn -c name ... [ login@ ] host [ :dest ]

古い rdist をサーバーとして起動する

/usr/sbin/rdist -Server

バージョン情報

/usr/sbin/rdist -V

説明 (/usr/sbin/rdist)

rdist は、複数のホストでファイルの同一のコピーを保守する プログラムです。これは、オーナー、グループ、モード、および可能であればファイルの変更時刻を保存し、さらに実行中のプログラムを更新できます。rdist コマンドは、以下のソースから指示を受け取ることができます。
  • 現行ディレクトリー内の配布ファイル distfile
  • distfile が - と指定されている場合は標準入力。
  • -f フラグを使用していない場合は、 rdistdistfile および Distfile という名前のファイルを探します。
  • -c フラグを使用した場合は、末尾の引数は 小さな distfile として解釈されます。 等しい distfile は以下のとおりです。
    ( filename ... ) -> [user@]host
         install       [dest name] ;

name 引数が指定されていない場合、 rdist は、 distfile にリストされたすべてのファイルおよびディレクトリーを更新します。 これ以外の場合、引数は更新するファイルの名前、または実行するコマンドのラベル であると解釈されます。 ラベルとファイル名が矛盾する場合は、ラベルであると想定されます。 これらを一緒に使用し、特定のコマンドを使用して特定のファイルを更新することができます。

-Server オプションは、 rdist の古いバージョン (rdist をサーバー・モードにするため、このオプションを使用) のための、後ろ向きの互換性を提供します。 -Server コマンド・ライン・オプションを使用して rdist を開始すると、rdist の古いバージョンを実行します。 このオプションは、古い rdist/usr/bin/rdist にある場合のみ働きます。

rdist は任意のトランスポート・プログラムを使用して、 それぞれのターゲット・ホストをアクセスします。 トランスポート・プログラムは、 -P フラグを使用して、コマンド・ラインに指定することができます。 -P フラグを使用しないと、 rsh がトランスポート・プログラムになります。 rsh メソッドを使用し、ターゲット・ホストが 文字列 localhost であり、リモート・ユーザー名が ローカル・ユーザー名と同じ場合、rdist は 次のコマンドの実行を試みます。
/bin/sh -c rdistd -S
これ以外の場合、rdist は次のコマンドを実行します。
rsh host -l remuser rdistd -S

上の例で、host パラメーターはターゲット・ホストの名前、 remuser は接続を行うユーザーの名前、 および rdistd は ターゲット・ホストの rdist サーバー・コマンドです。

トランスポート・プログラムは、rsh の場合、上記の構文と互換性がある必要があります。 そうではない場合には、このコマンド・ライン構文を理解するシェル・スクリプト内に、トランスポート・プログラムを含める必要があります。

それぞれのターゲット・ホスト上で、rdist は以下のコマンドを実行します。

rdistd -S

または

<rdistd path> -S

上の例は、-p フラグを指定しました。 -p フラグを指定しない、または <rdistd path> が 単純なファイル名の場合、rdistd または <rdistd path> は、 リモート (ターゲット) ホストで rdist を実行するユーザーの PATH 内のどこかになければなりません。

rdist コマンドは次の環境変数を使用します。
項目 説明
TMPDIR 使用する一時ディレクトリーの名前。デフォルトは /tmp です。

フラグ (/usr/sbin/rdist)

項目 説明
-A num ファイルシステムに最小限のフリー・ファイル (inodes) が存在する場合のみ、 ファイルを更新またはインストールします。
-a num ファイルシステムに最小限のフリー・スペースが存在する場合のみ、 ファイルを更新またはインストールします。
-d var = value value を変数 var に割り当てます。 このオプションは、distfile 内の変数定義を定義または変更するために使用します。 Value は、空の文字列、単一の名前、または括弧で囲まれ、 タブまたはスペース (またはその両方) で区切られた名前のリストにすることができます。
-F 子プロセスを fork せずに、すべてのクライアントを順番に更新します。
-f distfile distfile を配布ファイルとして使用します。 distfile が - と指定されている場合は、標準入力から読み取ります。
-l logopts ローカルのロギング・オプションを設定します。 logopts の構文については、 メッセージ・ログのセクションを参照してください。
-L logopts リモートのロギング・オプションを設定します。 logopts は、 リモート・サーバーに値が渡される (rdistd) こと以外は、ローカル・ロギングと同じです。 logopts の構文については、 メッセージ・ログのセクションを参照してください。
-M num 同時に実行する子 rdist プロセスの最大数を num に制限します。 デフォルト値は 4 です。
-m machine ファイルの更新を指定したマシンに制限します。 複数の -m 引数を指定し、更新を、 distfile にリストされたホストのサブセットに制限することができます。
-n コマンドを表示しますが、実行はしません。-n フラグを使用して distfile をデバッグします。
-o distopts dist オプションを使用可能にします。 distopts は、 以下にリストされたオプションをコンマで区切ったリストです。 distopts に有効な値は以下のものです。
chknfs
ターゲット・ファイルシステムが NFS の場合、ファイルを検査または更新しません。
chkreadonly
ターゲット・ホストのファイルが読み取り専用ファイルシステムに存在する場合、 ファイルの検査も更新も行われません。
chksym
リモート・ホスト上のターゲットがシンボリック・リンクであるが、 マスター・ホスト上にない場合、リモート・ターゲットはシンボリック・リンクのままです。
compare
ファイルにバイナリー比較を実行して、両者が異なる場合はファイルを更新します。
follow
リンク自体ではなく、シンボリック・リンクが指すファイルをコピーします。
ignlnks
解決できないリンクを無視します。この場合、 rdist は通常、未解決のリンクについてユーザーに警告を出します。
nochkowner
ファイルが既に存在する場合、ユーザーの所有権を検査しません。 ファイル所有権は、ファイルの更新時にのみ設定されます。
nochkgroup
ファイルが既に存在する場合、グループの所有権を検査しません。 ファイル所有権は、ファイルの更新時にのみ設定されます。
nochkmode
ファイルおよびディレクトリー許可モードの検査をしません。 許可モードは、ファイルの更新時にのみ設定されます。
nodescend
ディレクトリーに再帰的に下降することはしません。 ディレクトリーの存在、所有権、およびモードだけが検査されます。
noexec
a.out フォーマットの実行可能ファイルの検査または更新を行いません。
numchkgroup
グループ名ではなく数字のグループ ID (gid) を使用して、グループ所有権を検査します。
numchkowner
ユーザー名ではなく数字のユーザー ID (uid) を使用して、ユーザー所有権を検査します。
quiet
標準出力上で変更されるファイルの印刷を抑止します。
削除
リモート・ホスト上に存在するディレクトリー内のファイルで、 ローカル・ホストのマスター・ディレクトリーに存在しないファイルをすべて除去します。
savetargets
更新されるファイルを除去するのではなく、保管します。 更新されるターゲット・ファイルは、まず最初に filename から filename.OLD に名前変更されます。
sparse
スパース・ファイルの検査を使用可能にします。 このオプションはある程度の追加の処理オーバーヘッドを必要とするので、 スパース・ファイルを含んでいる可能性のあるターゲットにのみ使用可能にすべきです。
-o distopts (dist オプションの続き):
verify
すべてのホストのすべての期限切れのファイルを表示しますが、 ファイルは変更されず、メールも送信されません。
whole
宛先ディレクトリー名にファイル名全体を付加します。 通常、ファイルの名前変更には、名前の最後のコンポーネントのみが使用されます。 これにより、コピーされるファイルのディレクトリー構造が維持され、 ディレクトリー構造が平たんになりません。 例えば、 /path/dir1/f1 および /path/dir2/f2 の ファイルのリストを /tmp/dir に rdist すると、 /tmp/dir/dir1/f1/tmp/dir/dir2/f2 ではなく、 ファイル /tmp/dir/path/dir1/f1/tmp/dir/path/dir2/f2 が作成されます。
younger
ファイルは通常、mtimesize が一致しない場合に更新されます。 このオプションは、マスター・コピーよりも若いファイルを rdist が更新しないようにします。これは、他のホスト上の、より新しいコピーが 置き換えられるのを防ぐために使用することができます。 マスター・コピーよりも新しいファイルについては、警告メッセージが印刷されます。
-p < rdist-path> ターゲット・ホスト上の指定されたパス内で rdistd サーバーを探します。
-P < rdist-path> transport-path で指定されたトランスポート・プログラムを使用します。 transport-path は、可能なパス名をコロンで区切ったリストにすることができます。 この場合、存在するパスの最初のコンポーネントが使用されます。
-t timeout リモートの rdist サーバーからの応答を待つ timeout 期間 (秒単位) を設定します。 デフォルトは 900 秒です。
-V バージョン情報を印刷して、終了します。

メッセージ・ログ

rdist コマンドは、メッセージ機能のセットを提供し、 各機能には、その機能に送信するメッセージのタイプを示す、 メッセージ・タイプのリストが含まれます。 ローカル・クライアント (rdist) と リモート・サーバー (rdistd) はそれぞれ、 どの機能にどのタイプのメッセージをログ記録するかについて、別のコピーを保守します。

-l logopts フラグは、 クライアント上でローカルに使用するロギング・オプションを指定します。 -L logopts フラグは、 リモート rdistd サーバーに渡すロギング・オプションを指定します。

logopts のフォーマットは以下のとおりです。
facility=types:facility= types... 
有効な機能名は以下のとおりです。
stdout
メッセージを標準出力に出力。
ファイル
メッセージはファイルに送信されます。ファイル名は file = filename = types のフォーマットで指定します。
syslog
メッセージは syslogd 機能に送信されます。
notify
メッセージは内部 rdistnotify 機能に送信されます。 この機能は、distfile 内の notify と組み合わせて使用し、どのメッセージを notify アドレスにメールするかを指定します。
types は、メッセージ・タイプをコンマで区切って指定したリストにする必要があります。 指定する各メッセージ・タイプは、そのメッセージ・レベルを使用可能にします。 昇順方式を使用する syslog システム機能とは、この点が異なります。 有効なタイプを以下に示します。
変更
変更するものについて、メッセージをログに記録します。
info
一般情報をログに記録します。
notice (通知)
変更するものについて、一般情報のメッセージをログに記録します。 変更するものには、distfile には明示的に指定されていないが、 特定のターゲットにインストールするために必要なディレクトリーを作成した、 といったものも含まれます。
nerror
致命的ではない通常のエラーのメッセージをログに記録します。
ferror
致命的エラーのメッセージをログに記録します。
warning (警告)
nerror タイプのメッセージほど重大ではないエラーについての警告をログに記録します。
verbose
通常よりも詳細であるが、デバッグ・レベルよりは少ないメッセージをログに記録します。
debug
デバッグ情報をログに記録します。
all
デバッグ・メッセージを除くすべてをログに記録します。

配布ファイル (/usr/sbin/rdist)

配布ファイルは、コピーするファイル、配布の宛先ホスト、および rdist コマンドで配布するファイルの更新時に実行する操作を指定します。

入力フォーマット

配布ファイルの各エントリーは、以下のいずれかのフォーマットを取ります。
VariableName = NameList
配布ファイルのほかのエントリーに使用する変数 (SourceListDestinationList、または SubcommandList) を定義します。
[Label:] SourceList -> DestinationList SubcommandList
rdist コマンドに対して、SourceList 変数で指定したファイルを DestinationList 変数で指定したホストに配布するよう指示します。
配布ファイルのコマンドは追加機能を実行します。
[Label:] SourceList :: TimeStampFile SubcommandList
rdist コマンドに対して、指定日以降に変更があったファイルを更新するよう指示します。配布ファイルのサブコマンドは追加機能を実行します。
SourceList 変数で指定した各ファイルは、タイム・スタンプ・ファイルよりも新しければ更新されます。

ラベルはオプションです。ラベルは、部分的更新用のコマンドを識別するために使用されます。

エントリー

項目 説明
VariableName 配布ファイル内で使用する変数を識別します。
NameList ファイルおよびディレクトリー、ホスト、またはサブコマンドのリストを指定します。
SourceList 配布用のマスター・コピーとして使用する、rdist コマンド用のローカル・ホスト上のファイルおよびディレクトリーを指定します。
DestinationList ホストにファイルのコピーを受信するよう指示します。
SubcommandList 実行する配布ファイルのサブコマンドをリストします。

rdist コマンドでは、改行文字、タブ、およびブランクをセパレーターとして扱います。 展開用の配布ファイル変数は、$ (ドル記号) で始まり、その後に単一文字または中括弧で囲まれた名前が続きます。

コメントはポンド記号 (#) で始まり、改行文字で終わります。

ソース・リストおよび宛先リストのフォーマット

配布ファイルのソース・リストおよび宛先リストは、以下に示したフォーマットで示されるように、ブランクで区切られたゼロまたは複数の名前から構成されます。
[Name1] [Name2] [Name3] ...
rdist コマンドは、csh コマンドの場合と同様に、ローカル・ホスト上で以下のシェル・メタキャラクターを認識して展開します。
  • [ 左大括弧
  • ] 右大括弧
  • { 左中括弧
  • } 右中括弧
  • ( 左括弧
  • ) 右括弧
  • * アスタリスク
  • ? 疑問符

これらの文字が展開されないようにするには、文字の前に円記号を付けます。 rdist コマンドは、 csh コマンドと同様にティルドを展開しますが、 ローカル・ホストと宛先ホストで別々に展開します。 ティルドで始まるファイル名に -o whole オプションを使用すると、ホーム・ディレクトリー以外のすべてが 宛先名に付加されます。 / (斜線) または ~ (ティルド) で始まらないファイル名は、 宛先ユーザーのホーム・ディレクトリーを残りのファイル名のルート・ディレクトリーとして使用します。

配布ファイルのサブコマンド

シェルへの複数のコマンドは、; (セミコロン) で区切る必要があります。コマンドは、更新されるホスト上のユーザーのホーム・ディレクトリー内で実行されます。 プログラムを更新した後で専用データベースを再構築するときには、special サブコマンドを使用できます。

配布ファイルのサブコマンド・リストには、以下のサブコマンドをゼロ個以上入れることができます。
install Options[OptionalDestName];
古いファイルおよびディレクトリーをコピーします。rdist コマンドは、各ソース・ファイルまたはソース・ディレクトリーを宛先リスト内の各ホストにコピーします。
Options 変数で指定する使用可能なオプションは、rdist コマンド・フラグ -b-h-i -R -v-w、および -y です。
これらのオプションは、SourceList 変数で指定したファイルにだけ適用されます。

-R フラグを使用すると、対応するファイル名がマスター・ホスト上になければ、空でないディレクトリーが除去されます。OptionalDestName パラメーターはファイル名を変更します。

install サブコマンドがサブコマンド・リストにない場合、または宛先名を指定していない場合には、ソース・ファイル名が使用されます。リモート・ホスト上に存在しない場合には、パス名の下にディレクトリーが作成されます。

宛先ホストで使用するログイン名は、宛先名のフォーマットが login@host でなければ、ローカル・ホストと同じです。

notify NameList;
更新ファイル、およびリストされた名前 (NameList パラメーター) に生じる可能性のあるエラーのリストをメールします。
名前に @ (アットマーク) がなければ、宛先ホストがその名前に追加されます (name@host)。
except NameList;
rdist コマンドは、NameList 変数で指定したファイルを除き、SourceList エントリーで指定したすべてのファイルを更新します。
except_pat NameList;
rdist コマンドが、NameList 変数で指定したリストのメンバーと一致する文字列を含むすべてのファイルを更新しないようにします。
special NameList "String";
NameList 変数で指定したファイルの更新またはインストール後にリモート・ホスト上で実行するシェル・コマンド ("String" 変数) を指定します。
NameList 変数を省略すると、シェル・コマンドは更新またはインストールされたすべてのファイルに対して実行されます。
シェル変数 FILE は、rdist コマンドが "String" 変数を実行する前に、現行ファイル名に設定されます。
変数 REMFILE には更新されたばかりのリモート・ファイルの絶対パス名が含まれ、変数 BASEFILE には更新されたばかりのリモート・ファイルのベース名が含まれます。
"String" 値は二重引用符で囲む必要があり、配布ファイル内で複数行にまたがることができます。
cmdspecial NameList "String";
cmdspecial コマンドは special と似ていますが、 各ファイルが更新されるたびにではなく、 全体のコマンドが完了した後にのみ実行される点が異なります。
シェル変数 FILES にはファイルのリストが含まれます。 FILES シェル変数内の各ファイル名はコロンで区切ります。

NFS は、ホスト名が正符号 (+) で終わる場合は使用不可になります。 これは、 -o chknfs オプションをこの 1 つのホストにだけ使用不可にすることと同等です。

終了状況 (/usr/sbin/rdist)

このコマンドは、以下の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

例 (/usr/sbin/rdist)

  1. 更新するホストのファイルを指定するには、以下のような行を入力します。
    HOSTS =( matisse root@arpa )

    上の例で、 HOSTS 変数は matisse および root@arpa として定義されます。rdist コマンドは、ホスト matisse および root@arpa 上のファイルを更新します。

    この変数を宛先リストとして使用することもできます。

  2. SourceList エントリーの値として使用する名前を指定するには、 以下のような行を入力します。
    FILES = ( /bin /lib/usr/bin /usr/games
        /usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
           /usr/lib /usr/man/man? /usr/ucb /usr/local/rdist )

    上の例で、 FILES 値は SourceList エントリーに使用するファイルとして定義されます。

  3. 更新処理から除外するファイルを指定するには、以下のような行を入力します。
    EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
        sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont)

    上の 例で、EXLIB 値は、更新処理から除外するファイルのリストを定義します。

  4. /usr/src/bin から arpa にすべてのファイルをコピーして、namelist 変数を拡張し、それにより namelist 変数内にあるファイルと、拡張として .o を持つファイル以外の全ファイルがコピーされるようにするには、以下のような行を入力します。
    /usr/src/bin ->arpa
    except_pat(¥e¥e.o¥e ${<namelist> /SCCS¥e ${<namelist>}

    または

    /usr/src/bin ->arpa
    except_pat(¥¥.o¥e ${<namelist> /SCCS¥e ${<namelist>}
  5. .o という拡張を持つファイル以外のすべてのファイルを /usr/src/bin から arpa にコピーするには、以下のような行を入力します。
    /usr/src/bin ->arpa
    except_pat(¥¥.o¥$ /SCCS¥$

フォーマット: [label:] SourceList - DestinationList SubcommandList の例

  1. ファイルのソース・リストをホストの宛先リストにコピーするには、以下のような行を入力します。
    ${FILES} ->${HOSTS}
        install -R
        except /usr/lib/${EXLIB}  ;
        except /usr/games/lib  ;
        special /usr/sbin/sendmail "/usr/sbin/sendmail.bz"  ;

    上記の行で、[Label:] エントリーの指定は、任意であるため、ここには表示してありません。$ (ドル記号) および {} (中括弧) によって、 ファイル名 FILES、HOSTS、および EXLIB が前の例で指定したリストに展開されます。

    この例の残りの部分は、サブコマンド・リストを構成します。

  2. [Label:] エントリーを使用するには、以下のような行を入力します。
    srcsL:
    /usr/src/bin -> arpa
        except_pat (¥e¥e.o¥e$ /SCCS¥e$ ) ;

    ラベルは srcsL: で、更新の際にこのエントリーの識別に使用できます。/usr/src/bin ファイルはコピー元のソースで、ホスト arpa はコピーの宛先です。

    3 行目は、サブコマンド・リストからのサブコマンドです。

  3. タイム・スタンプ・ファイルを使用するには、以下のような行を入力します。
    ${FILES} :: stamp.cory
        notify root@cory

    $ (ドル記号) および {} (中括弧) によって、 FILES で指定した名前が指定したリストに展開されます。タイム・スタンプ・ファイルは stamp.cory です。

    最終行は、サブコマンド・リストからのサブコマンドです。

ファイル (/usr/sbin/rdist)

項目 説明
/usr/sbin/rdist バージョン 6.1.5 の rdist コマンドが入っています。
distfile 入力コマンドが入っています。
$ TMPDIR/rdist* 更新リスト用の一時ファイルです。