実践で学ぶ、一歩進んだサーバ構築・運用術

第 4 回 UUCP の活用


ダイヤルアップ接続に向く UUCP

UUCP とは, 「Unix to Unix CoPy 」の略で, UNIX マシン間でデータ転送を行うためのコマンド群の総称です。 主なプログラムには 表 1 のものがあります。

表 1 UUCP の主なコマンド
uucpマシン間でファイルを転送する
uuxリモート・マシン上でコマンドを実行する
cuリモート・マシンへログインする

例えば, マシン 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)。

UUCP の仕組み
図 3 UUCP の仕組み

実際の転送を行うのは uucico プログラムの役目です。 uucico は相手先ホストにダイヤルアップし, キューにたまっていたデータを一気に転送します。 相手先ホストのキューに自分あてのデータがたまっている場合は, 同時に受信も行います。

通信中の双方のホストの仕事は, 単にファイルを転送することだけですから, 多少マシンの負荷が高いときでも転送速度は落ちません。 さらに, ネット・ニュースの場合は, あらかじめ複数記事をまとめて圧縮しておくので 転送するデータの量が半分以下で済みます。

例えば, 主に日本語が使われるニュース・グループ群として有名な fj を購読するだけなら, 1 日に 10 分程度 UUCP でダイヤルアップするだけで済みます。 NNTP だと少なくともこの 10 倍くらいの時間がかかるでしょう。 サーバーの負荷が高い場合は, もっとかかるかも知れません*4。

このようにダイヤルアップ環境にとって UUCP は最適であるにもかかわらず, UUCP のユーザーは PPP のユーザーに比べると圧倒的に少数です。 UUCP では, インターネット普及の原動力となった Web を利用できないことを割り引いて考えても, 少な過ぎるように思います。 これは, 多くの人が UUCP に敷居の高さを感じているためではないでしょうか。

UUCP の敷居が高く感じられる原因は次の 2 点でしょう。

(1)Windows 標準でない
PPP も Windows95 に採用される前は敷居が高いものでした。 Windows のようなシェアの高い OS で追加インストールせずに 標準で使えることの意義は絶大で, Windows95 の発売をきっかけに, PPP ユーザーは一気に増えました。 これに対し, UUCP は Windows では標準サポートされていません。
(2)UUCP 対応のプロバイダが少ない
UUCP に興味があっても, 接続先がなければ実験してみることさえままなりません。 だから UUCP のユーザーが増えないのは当然とも言えます。 ユーザー数が少なくなるに従って UUCP が採算に乗らないサービスになり, UUCP サービスを廃止するプロバイダも出てくるといった悪循環が生じています。

逆に言うと, UUCP が何となく難しく感じられてしまうのは この 2 点だけが原因で, UUCP 自体は極めてシンプルな仕掛けです。 そして, Linux ユーザーであれば, この 2 点は次のように容易に克服可能です。

(1)Linux 標準である
ほとんどのディストリビューションに UUCP は標準で含まれています。 この UUCP は Taylor UUCP と呼ばれる UUCP の最新バージョンで, 現在の事実上の標準と言えます。 Linux だけでなく他のほとんどすべての UNIX 上で使うことができます。
(2)UUCP の接続先を探すためのメーリングリストがある
私が主催している「ご近所の UUCP サイトを探せ」メーリングリストに 参加すれば, UUCP 接続先を見つけることができます。 このメーリングリストについて詳しくは http://www.gcd.org/ml/seek-uucp-sites/Welcome.ja.html を参照してください。
*【キュー】
処理を待つデータをためておく場所のこと。 先にキューに入ったデータから順に処理が行われる(先入れ先出し方式)。
*3
UUCP は 1976 年に生まれ, 翌年UNIX Version 7 とともに配布されました。 当時すでに, インターネットの前身である ARPANET 自体は存在していました。 UNIX に TCP/IP が実装され, rcp やrsh コマンドが登場したのは 1982 年のことです。
*4
もっとも, NNTP を使っているダイヤルアップ・ユーザーのほとんどは, fj 全ニュース・グループを購読しようとは思いもしないかも知れませんね。

(UUCP でメールを送受信する)


本稿は日経Linux 2000 年 7 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 4 回「UUCP の活用」を日経BP 社の許可を得て転載したものです。

Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます

| home | up |

sengoku@gcd.org