説明
UUCP は、UUCP 要求を処理するときに、コマンド・ファイル、データ・ファイル、および実行ファイルの 3 種類の作業ファイルを使用します。
これら 3 種類のファイルはすべて、サイト名にちなんで命名される、各
特定サイトのためのサブディレクトリーに格納されます。例えば、UUCP スプール・ディレクトリーは /usr/spool/uucp なので、/usr/spool/uucp/south ディレクトリーは、すべてのコマンド、データ、および south リモート・サイトに関連した実行ファイルで使用されます。
コマンド・ファイル
コマンド・ファイルは、メール経路指定エージェント
の uucp および uux によって作成されます。UUCP サイトでは、コマンド・ファイルは、C.targetA28B9 などの名前
を持ちます。ここで、target は宛先サイトの名前、A は
ジョブ・グレード (uucp に対する –g オプションで
設定される)、および 28B9 はシーケンス番号またはジョブ識別番号です。(ジョブ識別番号を探すためには、uustat また
は uucp および uux の –j オプションを
使用することができます。)
コマンド・ファイルでは、各行が 1 つのファイル転送要求を記録します。このフィールドは次のように定義されています。
- type
- type フィールドは以下のいずれかにすることができます。
- R
- ファイルをリモートからローカル・サイトに受信します。
- S
- ファイルをローカル・サイトからリモート・サイトに送信します。
- source
- ソース・ファイルの名前
- destination
- リモート・サイトへ送信する場合 (S 要求) も、ローカル・サイトで
受信する場合 (R 要求) も、転送の完了後のファイルの名前。
波形記号 (~) などの特殊文字は、宛先サイトで展開表示されるので、ここではまだ入ったままです。
- sender
- コマンドを実行したユーザーのログイン名。これは、通常はユーザーのログイン名です。ただし、プログラム
によって (メール・プログラムなど) は、要求に対して異なるログイン名が
使用されます。
- オプション
- uucp および uux コマンドのオプションに
対応するコマンド・オプション。
- C
- コピーのソースとしてデータ・ファイル名を使用します。これは S 要求の場合にだけ指定できます。
- c
- コピーのソースとしてソース・ファイル名を使用します。
- d
- 必要に応じて中間ターゲット・ディレクトリーを作成します。これはデフォルトです。
- m
- 転送が完了したらユーザーにメールを送信します。
- n
- 転送が完了したら、notification で名前を指定されているユーザーにメールを
送信します。
- datafile
- ソース・ファイルをスプール・ディレクトリーにコピーする場合に使用される
一時ファイル。これは S 要求の場合にだけ使用されます。C をオプションの 1 つとして指定する場合は、データ・ファイルは
宛先サイトのデータ・スプール・ディレクトリー内のコピーの名前です。指定しない場合は、プレースホルダー名として D.0 が使用されます。
- ファイル・モード (file mode)
- ソース・ファイルの UNIX スタイルの許可モード。これは S 要求の場合だけ使用されます。送信されるファイルはすべて、モード 0666 になり、さらに、元のファイルが持っていた実行許可がそのまま移ります。(モードの説明については、chmod を参照してください。)
- notification
- ジョブ要求が完了したら通知を受ける人のログイン名。これは、S 要求で、n をオプションとしている場合にだけ使用されます。
例
- 以下のコマンド
uucp –m /memos.001 /memos.002 south!~/
は、ファイル /memos.001 と /memos.002 の
ルート・ディレクトリー
を south の公用 UUCP ディレクトリーにコピーします。ユーザー名が eve であるとすると、以下の行を
含むコマンド・ファイルが UUCP スプール・ディレクトリー /usr/spool/uucp/south に
作成されます。S /memos.001 ~/memos.001 eve –mcd D.0 0777
S /memos.002 ~/memos.002 eve –mcd D.0 0777
- 以下のコマンド
uucp south!~/index ~/
は、ユーザーのサイトにおいて、次の行を含むコマンド・ファイル
を UUCP スプール・ディレクトリー /usr/spool/uucp/south に
生成します。
R ~ /index ~/index eve –cd
データ・ファイル
データ・ファイルには、リモート・サイトに転送したいデータを入れます。これらのデータ・ファイルは、uucp で –C オプションを
指定することによって、および uux と mail のプログラムによって
作成されます。
UUCP サイトでは、データ・ファイルは D.source9B73001 のような
名前を持ちます。ここで、source は、そのデータ・ファイルの送信元のサイト (S 要求ではローカル・サイト
、R 要求ではリモート・サイト) の名前、98B3 はシ
ーケンス番号、001 は 1 つの要求で複数のデータ・ファイルが生成される
場合のサブシーケンス番号です。
uucp が作成するデータ・ファイルには、コピーするファイルが
入ります。リモート・サイトのためのコマンドを含む uux 作成のデータ・ファイル
は、その宛先で実行ファイルになります。
メール・サイトは、通常 2 つのデータ・ファイルを作成します。1 つは
メッセージを含むファイル、もう 1 つはリモート・サイトでメール経路指定エージェントを
実行するためのコマンドを含むファイルです。
例
UUCP データ・ファイルの中にコピーするデータが入っています。
uux データ・ファイルの内容とリモート・コマンドを生成するコマンドが、他のサイトのための実行ファイルです。例えば、
north あてのメール・メッセージは
、UUCP スプール・ディレクトリー
/usr/spool/uucp/north に
次の 2 つのデータ・ファイルを作成します。
D.north000A001
X.northX000A002
以下の作業ファイルが作成されます。
D.north000A001 メール・メッセージのテキスト
X.northX000A002 実行ファイル
実行ファイルには、
north で実行されるメール経路指定プログラム
のための
uux 要求が含まれます。
実行ファイル
実行ファイル は、別のサイトで作成され、こちらのサイトにコピーされる
コマンドの入っているデータ・ファイルです。このファイルは、uuxqt によってそのコマンドを実行するこちらの
サイトに届くと、実行ファイルとして処理されます。
UUCP サイトでは、実行ファイルは次のように命名されます。
X.remotX28A3003
ここで、
remot は宛先サイトの名前の最初の 5 文字、
X はジョブ・グレード (実行ファイルのグレードは
常に
X)、
28A3 はシーケンス番号です。
各実行ファイルには 1 つのコマンドと、そのコマンドを実行する
のに必要な情報が入ります。各行の情報のタイプは、その行の最初の文字で表されます。
どのファイルにもすべての行が使用されるわけではなく、また、すべての UUCP のインプリメンテーションですべての行がサポートされる
わけでもありません。実行ファイルの最初の行は
U 行、最後の行は
C 行でなければなりません。
- #
- コメントを表します。コメントおよび認識されないコマンドは無視されます。
- C command
- command の実行を要求します。command は、プログラムと引数を含むストリングです。この行は必須の行で、実行ファイルの最後の行でなければなりません。
- E
- コマンドを execve() で処理します。E 行があると、そのコマンドにシェル・メタキャラクターが入っていない
限り、uuxqt は fork()/ecec() シーケンス
を実行します。入っている場合は、uuxqt はシェルを起動してコマンドを実行します。
- e
- コマンドを POSIX シェルで処理します。これは、特殊な処理を必要とするコマンドを扱うための指定です。e 行がある場合は、uuxqt はコマンドを実行するために
定義されたシェルを起動します。
- F filename [ xqtname ]
- コマンドを実行するのに必要なファイルを filename で指定します。これは、多くの場合は、uux が実行されたサイトから転送されるファイルですが、ローカル・サイトまたはその他のサイトからのファイルとすることもできます。filename がローカル・サイトからのファイルではない場合は、通常は、スプール・ディレクトリーに入っているファイルです。F は複数行、指定できます。
標準入力ファイル以外のファイルはどれも xqtname 引数
を必要とし、実行ディレクトリーに xqtname として
コピーされます。標準入力ファイルは、ローカル・サイトからでない場合は、F コマンドと I コマンドの両方に指定されます。
- I stdin
- コマンドに標準入力を提供するファイルを指定します。標準入力ファイルがコマンドを実行するサイトからのものではない場合は、そのファイルは F コマンドにも指定されます。標準入力ファイルがない場合は、その動作はサイトのインプリメンテーション
によって異なります。すなわち、uuxqt はコマンドをリジェクト
することもあり、また UNIX インプリメンテーションの中に
は /dev/null を標準入力として使用するものもあります。実行ファイルには I 行は 1 行だけ存在できます。対応
する F 行がそのファイルに先行している必要があります。
- N
- コマンドが失敗しても、メール・メッセージは送信されません。
- n
- コマンドが成功した場合にメール・メッセージを送信することを
要求します。通常は、メッセージはコマンドが失敗した場合だけ、送信されます。
- O stdout [ site ]
- 標準出力ファイルを指定します。オプショナルの 2 番目の引数は、ファイルの送り先となるサイトの名前を
指定します。2 番目の引数がない場合、ファイルは実行サイトに作成されます。実行ファイルには O 行は 1 行だけ存在できます。対応
する F 行が O に先行している必要があります。
- U user site
- コマンドを要求したユーザーおよびその要求元となったサイトを
指定します。この行は必須の行で、実行ファイルの最初の行でなければなりません。
- Z
- コマンドが失敗したらメール・メッセージを送信するように指定します。これは uuxqt のデフォルトです。
これらのすべてのコマンドが、こちらのサイトでインプリメントされるとは
限りません。uuxqt でサポートされないコマンドのリストについては、uuxqt を参照してください。
ほとんどの実行ファイルは他のサイトで生成されますが、複数サイトからファイルを
検索する複合 uux コマンドでは、ローカル・スプール・ディレクトリーに実行コマンドを
生成することができます。この場合、local はこちらのサイトの名前です。
例
以下は、サイト
south で
rmail を実行するための
実行ファイルの例です。メール・メッセージを含むデータ・ファイルは
D.south49Z3 です。これは、
mailx コマンドで作成できる実行ファイルです。
U eve north
F D.south49Z3
I D.south49Z3
C rmail bob
このコマンドは、north で、ユーザー eve によって
作られました。これは、ターゲット・サイトで、引数 bob を付けて rmail を
実行することを要求しています。コマンドの実行にはファイル D.south49Z3 が必要で、これはコマンドの標準入力として使用されます。
関連情報
uucico、uucp、uux、uuxqt