MAP14: FTP パ−ト2                       パトリック・クリスペン                           福田  健 訳 技術とは、世界を操って、それと直接経験する必要がないようにしてしまう 術である。 -- Max Frisch, Homo Faber 昨日お話ししたことは、FTP を使うにあたっての基本的手順についてでした。 1. まず、FTP クライアントを起動します。 2. 次いで、その FTP クライアントに接続先のアドレスを指示し ます。(TELNET と同様に、1 と 2 の操作はまとめて1つの操 作で済ませることも可能です) 3. その遠隔地のサイトに対して、あなたのアカウントを入力します。 4. さらに、その遠隔地のサイトにあなたのパスワードを入力します。 5. 求めるファイルがあるディレクトリを見つけます。 6. そのディレクトリに移動します。 7. ( 必要なら)transfer mode を指定します。 8. 必要なファイルを取ってきます。 9. 最後に終了です。 昨日の説明の際には、SURAnet の FTP サイト(ftp.sura.net)にアクセスを して、そこで、アカウントとして "anonymous"( 匿名) を、パスワードとし て自分のインターネットアドレスを、それぞれ入力するところまでいきました。 というわけで、今日は、既に SURAnet の FTP サイトに入っている状態か ら話をはじめます。これから、SURAnet の FTP サイトが提供してくれるも のをいろいろ歩いて見てまわることにしましょう。 ( ところで、あなたが使っている FTP クライアントで利用できるコマンド 一覧を見るためには、FTP クライアントが起動している状態で、"HELP" と 入力すればいいのです。) 大抵の FTP クライアントにおいては、接続先の FTP サイトのカレントデ ィレクトリの内容を一覧するためには、 dir というコマンドが使えます。私が使っている FTP クライアントでも、この "dir" コマンドが使えます。今、 dir と入力すると、次のように表示されます。 >>>PORT 130,160,4,100,212,230 200 PORT command successful >>>LIST 150 Opening ASCII mode data connection for /bin/ls. total 728 drwxrwx--x 3 0 0 512 Aug 5 01:55 bin drwxr-xr-x 2 0 1 512 May 10 12:47 etc drwxrwxrwx 6 0 10 512 Oct 21 11:37 incoming drwxr-xr-x 2 0 0 8192 Feb 15 1992 lost+found -rw-r--r-- 1 0 1 350142 Oct 25 00:00 ls-lR drwxrwxr-r 24 0 100 512 May 3 13:25 pub 上の一覧表は、カレントディレクトリの構成を示したものになっています。 この一覧表の最初の部分に注目してみましょう。 drwxrwx--x 3 0 0 512 Aug 5 01:55 bin ここの意味は次のようになります。行の最初が、"d" ではなく "-" ではじ まっているものは、それがファイルであることを意味しています。それに対 して、上の例にあるように、行の最初が "d" ではじまっているものは、そ れがファイルではなく、サブディレクトリであることを意味しています。 それがどういう意味か、ですって?そうですね、では、この FTP サイトと いうものを1つの大きな家に見立てて説明いたしましょう。まず、正面入口 から家に入ると、そこには玄関の広間がありますね。そして、その玄関の広 間には、さまざまなものが置いてありますし、それらのものと同時に、他の 部屋につながっているドアも見えますよね。 さきほどのサブディレクトリ("d" が付いていたものです) とは、上の家の 例えでいけば、その ftp サイトの他の "部屋" につながるドアに相当する ものです。一方、さきほどのファイル("-" がついていたものです) は、上 の家の例でいけば、あなたが今いる部屋に置いてあって必要ならその部屋に 居ながら取ってこれるものに相当するものです。 さて、先程の例に戻って説明を続けましょう。 drwxrwx--x 3 0 0 512 Aug 5 01:55 bin "drwxrwx--x" という表示から、これはサブディレクトリである、というこ とが判ります( 最初の "d" の後の "rwxrwx--x" という部分は情報保護状 態の表示です) 。その右にある "512" という表示は、そのサブディレクト 自体の大きさをバイト単位で示しています。 さらに、その右にある "Aug 5 01:55" という表示は、そのサブディレクト リが最後に更新された日付を示しています。そして、最後の "bin" という のが、そのサブディレクトリの名前になるのです。 では、もう1つ別の例を見てみましょう。 -rw-r--r-- 1 0 1 350142 Oct 25 00:00 ls-lR 今度は、行のはじめが "d" ではなく、"-" で始まっていますから、これは ファイルであることが判ります。"350142" という表示は、このファイルの 大きさが 350,142 バイトであることを示しています。そして、このファイ ルが最後に更新されたのは 10 月 25 日の真夜中だ、ということも判ります。 "ls-lR" というのがそのファイルの名前になります。 さて、SURAnet のはじめのディレクトリの内容をもう一度眺めて見ましょう。 drwxrwx--x 3 0 0 512 Aug 5 01:55 bin drwxr-xr-x 2 0 1 512 May 10 12:47 etc drwxrwxrwx 6 0 10 512 Oct 21 11:37 incoming drwxr-xr-x 2 0 0 8192 Feb 15 1992 lost+found -rw-r--r-- 1 0 1 350142 Oct 25 00:00 ls-lR drwxrwxr-r 24 0 100 512 May 3 13:25 pub これから、自分が今居るメインディレクトリから、そのサブディレクトリの どれかに移動しようと思います。 一般的な FTP クライアントで、ディレクトリを移動するには、 cd というコマンドを使います。ここで、 となっている部分には、 あなたが実際に移動したいディレクトリ名を記します。 私は今、この FTP サイトで一般公開されいてる情報に関心があるので、"pub" というディレクトリに移動することにします。("pub" というディレクトリ 名は、よく使われる FTP 略語であり、"public"--- 一般公開されたもの--- という意味です。)そこで、 cd PUB と入力しました。すると、次のような表示が出るではありませんか。 >>>CWD PUB 550 PUB: No such file or directory. (訳: PUB という名前ではファイルもディレクトリも見当たりません。) うーん、これは一体どうしたことでしょうか? FTP には、あなた方の多くが欠点だと感じるであろうこととして、大文字と 小文字の区別をする、という規則があるのです。この場合、"pub" というデ ィレクトリはあるのですが、"PUB" などというディレクトリは存在しないの で、私が入力した "cd PUB" というコマンドは動かなかった訳です。 ではもう一度挑戦してみましょう。今度は、 cd pub と入力してみます。すると、次のように表示されます。 >>>CWD pub 250 CWD command successful. やった!ほら、うまくいきましたよ。 では、新たに移動したディレクトリの内容を調べて見ましょう。こうした場 合、どんな FTP コマンドを使えばいいか憶えていますか?( そう、"dir" ですね!) "dir" と入力してみると、次のように表示されます。 >>>PORT 130,160,4,100,215,140 200 PORT command successful. >>>LIST 150 Opening ASCII mode data connection for /bin/ls. Total 56 -rw-rw-r-- 1 1023 100 4052 Apr 22 1994 README drwxrwsr-x 2 1023 100 512 Aug 6 1993 SURAnet drwxrwxr-x 6 1020 120 512 Mar 3 1992 archie drwxrwxr-x 2 1034 120 512 Feb 15 1992 articles drwxrwxr-x 2 1007 110 512 Jun 22 15:40 books (以下省略) 何ですって!最初にある README---これを読め--- というファイルはなんだ か重要そうに思えますね。このファイルには、このあとを過ごしやすくする 重要な情報が収められているのではないかと思いますよ。( 役に立つ決まり 事: "README" とか "INDEX" という語をファイル名に使っているファイル を見たら、それは重要なファイルだ、と思って間違いありません) では、この "README" というファイルを取ってくることにしましょう。 FTPを使ってファイルを取ってくるためには、 get というコマンドを使います。ここで、 となっている部分には、 実際に取ってきたいファイル名を記します。この get コマンドは、接続先 サイトの指定ファイルの内容を取り出して、それをあなたの手元のサイト( あなたが今お使いのインターネットサービス提供者のシステム) 側に保管( 複製) します。 ここでは、README というファイルを取ってこようとしているのですから、 get README と入力します( 大文字・小文字の区別に注意してください) 。すると、次のよ うに表示されました。 Invalid local filename; use 'name.type.mode' or 'name.type' (訳: 手元システムに保管するファイルに付けるファイル名が適切で はありません。ファイル名には、'name.type.mode' または 'name.type' という形式を使ってください。) これは何でしょうか?!? 上に示したような問題は、「1単語からなるファイル名」を付けたファイル を取ってこようとした場合に、起こることがあります。インターネットサー ビス提供者のシステムによっては、そこに保管( 複製先) するファイル名に、 なんらかしらの「拡張子」なり「ファイル種識別子」を必ず付ける必要があ るのです。すなわち、単に 'README' という語だけからなるファイル名は使え ず、'README.< なんらかしらの拡張子>'( 例えば、'README.DOC' とか 'README.TXT' などのように) としなければならないのです。 こうした理由で、"get README" というコマンドではうまく作動しないので、 その代わりに、 get < ファイル名> < 手元システムでの保管ファイル名> というコマンド書式を使って、< ファイル名>としては 'README' を、< 手 元システムでの保管ファイル名> としては、今使っているインターネットサ ービス提供者のシステム上で保管( 複製) するファイル名を指定することに なります。 ですから、この書式に従って、 get README README.DOC と入力しましょう。すると、次のように表示されます。 >>>PORT 130,160,4,100,218,90 200 PORT command successful. >>>RETR README 150 Opening ASCII mode data connection for README (4502 bytes). さらに数秒間待つと、今度は次のように表示されます。 226 Transfer complete. 4637 bytes transferred. Transfer rate 6.14 Kbytes/sec. やったね!うまくいきました!では、FTP を終わって、取ってきたファイル を見てみましょう。 FTP を終わるには、"bye" もしくは "quit" というコマンドを使います。 私が使っている FTP クライアントでは、終了のためのコマンドは "quit" なので、 quit と入力すると、画面には、 221 Goodbye. Ready; T=0.54/0.96 01:45:53 と表示されました。うーーん、目的のファイルを手に入れることができまし た。で、それはいまどこにあるのでしょう?そう、それは、私が所属するロ ーカルのインターネットサービス提供者のシステムの私のアカウント上にま だ置いてあるのです! FTP を使って取ってきたこれらファイルを操作する方法は、あなたがお使い のシステムによってさまざまです( 例えば、ファイル名を見るためには、UNIX であれば "ls" としますし、VMS であれば "fl" とします)。 それらファイ ルにアクセスして、読んだり、印刷したりする方法については、あなたの所 属するローカルのインターネットサービス提供者が詳細を教えてくれるでし ょう。 さきほど私が FTP を使って取ってきた README というファイルを見てみる と、その中身は、次のように、pub ディレクトリ以下の各サブディレクトリ にはどのようなファイルがおさめられているかを簡単に記したものでした( これはいい!): The following items are available anonymous ftp from ftp.sura.net: Directories found under pub: archie/ Information on the archie service as well as client software to use archie. articles/ Text versions of articles in the SURAnet newsletter. books/ Subdirectory containing information on ordering discounted books through SURAnet. databases/ The databases in raw format that are also offered through our WAIS server. dns/ Software and documentation to help setup the Domain Name Server software on Unix machines (BIND) fdic/ The Federal Deposit Insurance Corporation's ftp archive. ( 以下省略) すばらしい! :) ここで、もう一度 SURAnet に戻って、SURAnet ニューズレターを1本取っ てくることにしましょう。先の README ファイルのおかげで、目的の SURAnet ニューズレターファイルは、"pub" ディレクトリ中の "articles" サブディ レクトリを探せばよいことが判りました。 これは、FTP クライアントでは、 /pub/articles という書き方が使えます。 これは、「pub ディレクトリにある articles サブディレクトリの」という ことと同じ意味になります。この書き方を使うことで、以下で見るように、 複数の手順を1つにまとめて行うことが可能になります。 さあ、SURAnet に戻ってニューズレターを取ってきましょう。 まず、 ftp ftp.sura.net と入力します。すると、次のように表示されます。 Connecting to ftp.sura.net 128.167.254.179, port 21 220 nic.sura.net FTP server (Version wu-2.4(1) Fri May 20 10:20:58 EDT 1994) ready. USER (identify yourself to the host): 私は SURAnet ホストマシンにアカウントを持っていませんから、上のプロ ンプトに対して、 anonymous と入力することにします。すると、画面は、 >>>USER anonymous 331 Guest login ok, send your complete e-mail address as password. Password: となってパスワードをたずねてきますから、こんどは私のインターネットア ドレス(pcrispe1@ua1vm.ua.edu) を入力します。すると、次のように表示さ れます。 >>>PASS ******** 230- SURAnet ftp server running wuarchive experimental ftpd 230- 230-Welcome to the SURAnet ftp server. If you have any problems with 230-the server please mail the to systems@sura.net. If you do have problems, 230-please try using a dash (-) as the first character of your password 230- -- this will turn off the continuation messages that may be confusing 230-your ftp client. (中略) 230 Guest login ok, access restrictions apply. Command: ここでは、pub ディレクトリに移って、さらに articles サブディレクトリ に移ればよいことを、すでに私は知っています。 そこで、まず "cd pub" と入力して、次に "cd articles" と入力することも できるのですが、これらを1つのコマンドにまとめて入力し、一気に "articles" サブディレクトリに飛び移ったほ方が簡単でしょう。 そのためには、先程紹介した '/pub/articles' という書き方を使って、次 のように入力します。 cd /pub/articles これで、目指す "articles" ディレクトリに一気に移動することができます。 そして、次のように表示されます。 >>>CWD /pub/articles 250 CWD command successful. Command: 私は、今移ってきたばかりの、ここ "articles" サブディレクトリがどうな っているのか解っていません。そこで、 dir と入力したところ、次のように表示されました。 >>>PORT 130,160,4,100,222,127 200 PORT command successful >>>LIST 150 Opening ASCII mode data connection for /bin/ls. Total 382 -rw-rw-r-- 1 0 120 1510 Jan 3 1992 editors.box.text -rw-rw-r-- 1 0 120 46167 Jan 3 1992 fall91.issue -rw-rw-r-- 1 0 120 52864 Jan 3 1992 spring91.issue -rw-rw-r-- 1 0 120 1515 Jan 3 1992 sub.form.txt -rw-rw-r-- 1 0 120 36418 Jan 3 1992 summer91.issue -rw-rw-r-- 1 0 120 53606 Jan 3 1992 winter90.issue 226 Transfer complete いいですねぇ!ここにあるファイルには、みな「拡張子」がもともと添付さ れています('winter90.issue' などのように) から、簡単に取ってくること ができます! 1991 年秋号を取ってくることにしましょう。これは "fall91.issue" とい うファイルです。 get fall91.issue と入力すると、次のように表示されます。 >>>PORT 130,160,4,100,224,34 200 PORT command successful >>>RETR fall91.issue 150 Opening ASCII mode data connection for fall91.issue (46167 bytes). さらに数秒後、次のように表示されます。 226 Transfer complete. 47151 bytes transferred. Transfer rate 16.58 Kbytes/sec. うまくいったぞ。よし! :) そこで、FTP を終わるために、"bye" もしくは "quit" と入力して、仕事を 終わることにします。今や、"fall91.issue" というファイルは、私が所属 しているローカルのインターネットサービス提供者のマシンの私のアカウン ト上に置かれています。 明日のお題目: - ASCII ファイルとバイナリファイル - 一度に複数のファイルを取ってくる方法 - ファイルの圧縮(compression) と伸長(unpacking) - 電子メールのみによる FTP Roadmap 原作著作権所有者   (c) 1994 Patrick Douglas Crispen                PCRISPE1@UA1VM.UA.EDU 翻訳者            Takeshi FUKUDA                fkd@is.seiesn-u.ac.jp Roadmap Lessons 日本語版著作権所有者     (c) 1995 Reiko Sekiguchi                sekiguch@ulis.ac.jp 本稿は、1995年3月19日、パトリック・クリスペン氏から関口が翻訳・ 配布の許可をいただいて、翻訳・配布しているものです。