uucp(1) Unix to Unix CoPy。システム間でファイルのコピーを行う

書式

uucp [ options ] source-file destination-file

uucp [ options ] source-file... destination-directory

解説

uucp コマンドは、システム間でのファイルコピーを行います。 source-file , destination-file などのファイル名に関連した引数は、ローカルマシン上のパス名か、 以下の形式で与えます。
system!path

本形式で記述することで、ファイルがリモートマシン上のものであるとして解釈され ます。最初の書式では、最初に指定したファイルを次に指定したファイル名で コピーします。次の形式では、 各コピー元ファイルはコピー先ディレクトリにコピーされます。

system1 を経由して、 system2 にあるファイルに対しアクセスする場合には、以下のよ うにしてファイル名を指定します。

system1!system2!path.

与えたパス名が / もしくは ~ で開始しない場合、その前にはカレントディレクトリを 表す文字列が付加されます。ただし、 -W および --noexpand オプションが指定された場合にはこの限りではありま せん。結果として、フルパス名はリモートシステム上については特に必要ないことに なります。 ~ ではじまるパス名は、UUCP パブリックディレクトリを指します。パス名を ~ で 始める場合、その部分をユーザのホームディレクトリに変換します。 ~ は、指定されたシステム上で文字列に変換されます。ただし、シェルの中には、~ を リモートシステムに渡す前に、ローカルで変換してしまうものがありますので、 その場合は ~ をクオートしてやって 変換されないようにして下さい。

シェルのメタキャラクタである ? * [ ] は、指定されたシステム上で変換されます。 ただしこの動作は、メタキャラクタがクオートされていて、ローカルシェルで変換 されないことを仮定し た場合です。

実際にはコピーは即時には行われず、かわりに uucico (8) デーモンのキューに蓄積されます。 本デーモンは、uucp コマンドに -r もしくは --nouucico オプションが与えられない限り、ただちに動作します。 いかなる場合でも、リモートシステムが次に呼ばれる時には、ファイルはコピーされます。

オプション

uucp では以下のオプションが使用可能です。
-c, --nocopy
ローカルソースファイルをスプールディレクトリにコピーしません。それらの ファイルが uucico (8) デーモンが処理する前に削除された場合には、コピーは失敗します。 ファイルは uucico および uucp を実行したユーザが可読な状態にある必要があります。
-C, --copy
ローカルソースファイルをスプールディレクトリにコピーします。 デフォルトオプションです。
-d, --directories
コピー中に、必要な全てのディレクトリを作成します。 これはデフォルトオプションです。
-f, --nodirectories
コピー中に、コピー先パス名に記述されたディレクトリが存在しない場合は、コピーを 中断します。
-R, --recursive
ソースファイル名がディレクトリであるものは、その中身をコピー先 (ディレクトリでなければなりません) に再帰的にコピーします。
-g grade, --grade grade
ファイル転送コマンドのグレードを設定します。高いグレードのジョブは、 早い順番で実行されます。 グレードは、0を最高、zを最低として、0から9,AからZ,aからzの順にならびます。
-m, --mail
ファイル転送が正常終了したか、異常終了したかを、 mail (1) コマンドを用いて報告します。
-n user, --notify user
ファイル転送が正常終了したか、異常終了したかを、 mail (1) コマンドを用いて リモートシステム上のユーザに報告します。
-r, --nouucico
uucico (8) デーモンをすぐに起動しません。単に後でファイル転送を行うために キューにつないでおくだけです。
-j, --jobid
標準出力に、ジョブ ID を表示します。ジョブは、 uustat (1) の -k オプションを用いる ことで、実行をキャンセルすることが可能です。いくつかの操作を複合することに よって、1 つ以上のジョブをキャンセルすることが可能になります。 このことを実行するにあたっては、各ジ ョブに関して独立した行で情報が表示されることを用います。例えば、
uucp sys1!~user1/file1 sys2!~user2/file2 ~user3
の場合、/usr/spool/uucppublic には 2 つの独立したジョブが生成されます。 1 つはシステム sys1 上のジョブであり、もう 1 つはシステム sys2 上のジョブです。
-W, --noexpand
カレントディレクトリ名を用いたリモートの相対パス名の解決を行いません。
-t, --uuto
このオプションは uuto シェルスクリプト内で使われます。 uucp は最後の引数を system!user という形式として解釈します。 ファイルはリモートシステム上の ~/receive/USER/LOCAL に送られます。ここで、 USER は最後の引数からのもので、 LOCAL はローカルの UUCP システム名です。 また、 uucp--notify user が指定されたかのように振舞います。
-x type, --debug type
特定のデバッグタイプを有効にします。デバッグタイプとしては、 abnormal, chat, handshake, uucp-proto, proto, port, config, spooldir, execute, incoming, outgoing が有効です。 なお、 uucp 自体に意味のあるデバッグタイプは abnormal, config, spooldir, execute の 4 つだけです。

また、デバッグタイプに関しては、コンマで区切ることで複数指定が可能になります。 また、 --debug によるデバッグタイプ指定は、1 つのコマンドライン中に複数存在してもかまい ません。 数字による指定を行うと、先述のリスト中、先頭から指定した番号までの デバッグタイプが有効になります。例えば、 --debug 2 と指定した場合は、 --debug abnormal,chat と指定したのと同じです。

-I file, --config file
使用するコンフィギュレーションファイルを設定します。しかし このオプションが利用できるかできないかは uucp をどのようにコンパイルしたかに依存します。
-v, --version
バージョン情報を表示して終了します。
--help
ヘルプメッセージを表示して終了します。

関連ファイル

ファイル名は、コンパイル時もしくはコンフィギュレーションファイルによって 変更可能です。 したがって、これは目安だと思って下さい。


/usr/lib/uucp/config - コンフィギュレーションファイル
/usr/spool/uucp - UUCP スプールディレクトリ
/usr/spool/uucp/Log - UUCP ログ記録ファイル
/usr/spool/uucppublic - デフォルト時の UUCP パブリックディレクトリ

バグ

オプションの中には、リモートシステム上の uucico (8) の機能に依存するものがあります。

-n および -m オプションについては他のシステム上のファイルをさらに別のシステム 上に転送する場合には機能しません。

ファイル属性は実行属性を除き、引き継がれません。実行の結果、生成されたファイル の所有者は、uucp ユーザになります。

参照文献

UUCP システム管理 (Nutshell/アスキー)
UUCP 入門 (Nutshell/アスキー)

作者

Ian Lance Taylor <[email protected]>