UUCP とは, 「Unix to Unix CoPy 」の略で, UNIX マシン間でデータ転送を行うためのコマンド群の総称です。 主なプログラムには 表 1 のものがあります。
表 1 UUCP の主なコマンド | ||||||
|
例えば, マシン asao からマシン ozenji のディレクトリ 「/var/spool/uucppublic」へファイル「file」を送るときは, 図 1 のように実行します。 rcp コマンドで file を送るとき(図 2)とよく似ています。 uucp では, 「:」の代わりに「!」が使われている点だけが異なります。 「!」の前の「\」は, シェルにとって「!」が特別な意味を持っているため, それを打ち消すために必要になるものです。
% uucp file ozenji\!/var/spool/uucppublic/ |
図 1 UUCP でのファイル転送 |
ファイルはキューにためられたあと,一括送信されます。 |
% rcp file ozenji:/var/spool/uucppublic/ |
図 2 rcp コマンドでのファイル転送 |
UUCP での転送の場合と操作方法が似ています。 |
同様に, uux コマンドは rsh コマンドによく似ています。 rcp や rsh が使える環境なら, UUCP は不要であると言えるでしょう。 事実, インターネットの普及と共に次第に UUCP の活躍の場が減ってきました。
UUCP は非常に古いデータ転送方法です。 UUCP が生まれてから実に 4 半世紀が経過しています*3 。 現在ではもう UUCP は不要と考える方も多いでしょう。 しかし, そうではありません。 確かにインターネットは爆発的に普及したのですが, 多くのユーザーはダイヤルアップでインターネットに接続しているだけなので, まだまだ UUCP が有用である場合が多いのです。
多くの人, 特に Windows ユーザーの大半が, PPP でプロバイダにダイヤルアップ接続し, SMTP(Simple Mail Transfer Protocol)でメールを送信し, POP(Post Office Protocol)でメールを受信し, そして NNTP(NetNews Transfer Protocol)で ニュースを読み書きしているのではないかと思います。 しかし, SMTP,POP,NNTP のいずれも常時接続を前提としたプロトコルであり, ダイヤルアップ接続で使うのは変則的と言えるでしょう。
これらのプロトコルは常時接続が前提ですから, 通信時間を短くしようとする工夫は一切入っていません。 それどころか, サーバーの過負荷を回避するために, 集中的にデータが流れないように(つまり通信時間が長くなるように) する仕掛けすらあります。 ダイヤルアップで使うのは, はなはだ不適当と言えるでしょう。 日本のように電話代が高い国ではなおさらです。
一方,UUCP は元々ダイヤルアップで使うことが前提です。 前述した uucp コマンドや uux コマンドは転送すべきデータをキュー* にためるだけで, 実際の転送は行いません。 そして, 転送に適した条件が整ったとき (例えば, データがある程度たまったとき, あるいは電話代が安い時間帯, あるいはサーバーの負荷が軽いとき) ダイヤルアップして 一気に転送し, 転送が終わると速やかに接続を切ります(図 3)。
図 3 UUCP の仕組み |
実際の転送を行うのは uucico プログラムの役目です。 uucico は相手先ホストにダイヤルアップし, キューにたまっていたデータを一気に転送します。 相手先ホストのキューに自分あてのデータがたまっている場合は, 同時に受信も行います。
通信中の双方のホストの仕事は, 単にファイルを転送することだけですから, 多少マシンの負荷が高いときでも転送速度は落ちません。 さらに, ネット・ニュースの場合は, あらかじめ複数記事をまとめて圧縮しておくので 転送するデータの量が半分以下で済みます。
例えば, 主に日本語が使われるニュース・グループ群として有名な fj を購読するだけなら, 1 日に 10 分程度 UUCP でダイヤルアップするだけで済みます。 NNTP だと少なくともこの 10 倍くらいの時間がかかるでしょう。 サーバーの負荷が高い場合は, もっとかかるかも知れません*4。
このようにダイヤルアップ環境にとって UUCP は最適であるにもかかわらず, UUCP のユーザーは PPP のユーザーに比べると圧倒的に少数です。 UUCP では, インターネット普及の原動力となった Web を利用できないことを割り引いて考えても, 少な過ぎるように思います。 これは, 多くの人が UUCP に敷居の高さを感じているためではないでしょうか。
UUCP の敷居が高く感じられる原因は次の 2 点でしょう。
逆に言うと, UUCP が何となく難しく感じられてしまうのは この 2 点だけが原因で, UUCP 自体は極めてシンプルな仕掛けです。 そして, Linux ユーザーであれば, この 2 点は次のように容易に克服可能です。
本稿は日経Linux 2000 年 7 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 4 回「UUCP の活用」を日経BP 社の許可を得て転載したものです。
Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます