Archie とは
Anonymous FTP でソフトウェアを取得するには、どこの FTP サイトに目的のソースファイルがあるかを知る必要があります。最近は WWW 上の検索エンジンサービスで、案内のページを見付けるという手段もありますが、Anonymous FTP はやはり Archie を利用するのが一般的でしょう。
Archie は簡単に言うと、サーバー/クライアント型 (ここでは Prsspero のみの解説にとどめ、telnet や mail でのサービスについては省きます。) の検索システムです。
Archie サーバーは定期的に各所の Anonymous FTP サイトを調べ、それをデータベース化して保持しています。クライアントはネットワークを通して検索要求をサーバーに送り、サーバーは保持しているデータから要求項目を検索し、結果をクライアントに返します。
Archie クライアントのソフトウェアにはいくつかの種類があります。
例えばコマンドベースで扱える archie には C 言語で書かれているものと Perl で書かれているものがありますし、X 上で動き、GUI で操作できる xarchie というソフトウェアもあります。また、一部では Archie を WWW で利用できるようにしているサイトもあります。
archie の使い方
ここでは、C 言語で書かれている archie を使って目的のファイルを捜す方法を解説します。基本的に archie 目的のファイル名 と実行することで検索できます。
$ archie -m 5 c-archie-1.4.1-FIXED.tar.Z
Host ftp://ftp.media.kyoto-u.ac.jp/
Location: /pub/FreeBSD/ports/distfiles/
FILE -rw-r--r-- 166623 May 21 1993 c-archie-1.4.1-FIXED.tar.Z
Location: /pub/NetBSD/packages/distfiles/
FILE -rw-r--r-- 166623 May 20 1993 c-archie-1.4.1-FIXED.tar.Z
Host ftp://ftp.tut.ac.jp/
Location: /.h2/Net/ftp/
FILE -rw-rw---- 166623 Jan 16 1997 c-archie-1.4.1-FIXED.tar.Z
Location: /NetBSD/packages/distfiles/
FILE -r--r--r-- 166623 May 20 1993 c-archie-1.4.1-FIXED.tar.Z
Host ftp://ring.asahi-net.or.jp/
Location: /pub/NetBSD/packages/distfiles/
FILE -rw-rw-r-- 166623 May 20 1993 c-archie-1.4.1-FIXED.tar.Z
上記の例では c-archie-1.4.1-FIXED.tar.Z というファイルを検索し、その結果が五つ表示されています。オプションを -m 5 と指定することで、検索数を 5 つまでに制限しています。
もし指定しなければもう少し多く結果が表示されるでしょう。また著者が使用している archie は、デフォルトでは問い合わせる Archie サーバーを archie.iij.ad.jp にしています。通常はオプション -h ホスト名 を使用して、問い合わせるホストを指定します。
国内の代表的な Archie サーバーを以下に挙げます。
- archie.iij.ad.jp
- 国内外のホスト対象
- archie.kuis.kyoto-u.ac.jp
- 国内のホスト対象
先に例では、一つの検索結果を数行に渡って表示されていましたが、
オプション -l を指定して、一行で記述する方法があります。
$ archie -l -m 5 -h archie.kuis.kyoto-u.ac.jp c-archie-1.4.1-FIXED.tar.Z 19930522000000Z 166623 ftp://ftp.ccs.dendai.ac.jp/pub/OS/FreeBSD/distfiles/c-archie-1.4.1-FIXED.tar.Z 19930522000000Z 166623 ftp://ftp.ccs.dendai.ac.jp/pub/OS/FreeBSD/ports/distfiles/c-archie-1.4.1-FIXED.tar.Z 19930521000000Z 166623 ftp://ftp.media.kyoto-u.ac.jp/pub/NetBSD/packages/distfiles/c-archie-1.4.1-FIXED.tar.Z 19930522000000Z 166623 ftp://ftp.ics.es.osaka-u.ac.jp/pub/mirrors/FreeBSD/ports/distfiles/c-archie-1.4.1-FIXED.tar.Z 19930521000000Z 166623 ftp://ftp.ics.es.osaka-u.ac.jp/pub/mirrors/NetBSD/packages/distfiles/c-archie-1.4.1-FIXED.tar.Z
今までの例は、検索目的のファイル名を知っていた場合ですが、たいていの場合は正確なファイル名は把握していないものです。
例えば小文字か大文字か判らないとか部分的な文字しか判っていない場合がほとんどです。
Archie は、オプションで指定することにより、いくつかの検索モードが使えます。
- -c
- 部分的な比較をします。大文字と小文字は区別されます。
- -e
- 正確な比較をします。これがデフォルトです。
- -r
- 正規表現での比較をします。
- -s
- 部分的な比較します。大文字と小文字は区別されません。
著者の経験では、オプション -s を使う場合が多いです。
たまに -r を使用して正規表現による検索を行ないます。
$ archie -r -m 5 -h archie.kuis.kyoto-u.ac.jp '[Aa]rchie.*FIXED.*[zZ]$'
Host ftp://ftp.chiba-u.ac.jp/
Location: /pub/misc/archie/
FILE -r--r--r-- 106307 May 21 1993 c-archie-1.4.1-FIXED.tar.gz
Host ftp://ftp.ccs.dendai.ac.jp/
Location: /pub/OS/FreeBSD/distfiles/
FILE -rw-r--r-- 166623 May 22 1993 c-archie-1.4.1-FIXED.tar.Z
Location: /pub/OS/FreeBSD/ports/distfiles/
FILE -rw-r--r-- 166623 May 22 1993 c-archie-1.4.1-FIXED.tar.Z
Host ftp://ftp.chem.sci.osaka-u.ac.jp/
Location: /pub/unix/net/archie/
FILE -rw-rw-r-- 106307 May 21 1993 c-archie-1.4.1-FIXED.tar.gz
Host ftp://ftp.st.ryukoku.ac.jp/
Location: /pub/network/archie/
FILE -rw-r--r-- 166623 Jul 4 1994 c-archie-1.4.1-FIXED.tar.Z
その他の archie のオプションを知りたい場合は、もちろん man で確認する方法もありますが、他にも archie に引き数を与えずに実行することで確認できます。
$ archie
Usage: archie [-acelorstvLV] [-m hits] [-N level] string
-a : list matches as Alex filenames
-c : case sensitive substring search
-e : exact string match (default)
-r : regular expression search
-s : case insensitive substring search
-l : list one match per line
-t : sort inverted by date
-m hits : specifies maximum number of hits to return (default 95)
-o filename : specifies file to store results in
-h host : specifies server host
-L : list known servers and current default
-N level : specifies query niceness level (0-35765)
近いサイトを捜す
もし、目的のファイルが複数の FTP サイトにある場合、そのうちの何処の FTP サイトに接続してファイルを取得したらよいのでしょう。
その答えは、一般的にはネットワーク的に近いサイトから取得するべきとされています。ここでは実際の FTP サーバーの所在地は関係ありません。例えばその FTP サーバーの所在地があなたにとって地球の裏側に存在していたとしても、ネットワーク的には非常に近いサイトである場合もありえるのです。
このネットワーク的な距離はコマンド traceroute を使用して調べることができます。基本的な実行方法は traceroute ホスト名 です。
$ traceroute ftp.iij.ad.jp traceroute to ftp.iij.ad.jp (202.232.2.51): 1-30 hops, 38 byte packets 1 ipmr.yynet.tama.tokyo.jp (210.145.210.25) 2.56 ms 2.41 ms 2.64 ms 2 203.139.166.38 (203.139.166.38) 19.0 ms 19.3 ms 19.2 ms 3 203.139.166.33 (203.139.166.33) 55.5 ms 50.7 ms 68.2 ms 4 203.139.164.228 (203.139.164.228) 49.1 ms 49.3 ms 52.4 ms 5 210.163.252.131 (210.163.252.131) 55.1 ms 51.3 ms 52.1 ms 6 203.139.182.230 (203.139.182.230) 54.8 ms 56.0 ms 77.6 ms 7 nspixp2.iij.ad.jp (202.249.2.19) 59.9 ms 60.1 ms 52.3 ms 8 tky-gate0.IIJ.Net (202.232.3.134) 75.5 ms 55.6 ms 51.0 ms 9 ftp2.iij.ad.jp (202.232.2.51) 56.0 ms 59.0 ms 79.9 ms
traceroute はホップ数、ホスト名または IP アドレス、そして往復時間である RTT (Round Trip Time) を表示します。上記の例では 9 ホップ数で目的のホストに到達するということです。
極力、このホップ数の少ない FTP サイトを選択してファイルを取得するようにしましょう。