16.2.3 ftpによるファイル転送

HTMLファイルの準備ができたら, それをFTPコマンドを使ってウェブサーバに送りましょう.送られたファイルはWWWによって見ることができるようになり,最初の情報発信ができることになります.

以下では,先ほどダウンロードして編集したファイル index.html はデスクトップにあるとして,それを転送する手順を説明します.

ターミナルを起動する

まず「ターミナル」アプリケーションを起動します.(方法:review_s12.2.1 コマンド入力の基本)

転送したファイルのあるディレクトリに移動する

起動した画面に下の赤字の部分を入力してゆきましょう.青字はシステムからの返事です.もし入力した内容に間違いがあった場合には,違った返事が返ってくるので,よく読み比べてみて下さい.なお,一連の操作は related_s16.2.4 ftp操作のアニメーション で見ることもできます.

まずは,転送したいファイルがあるデスクトップディレクトリ(~/Desktop)に移動して,転送したいファイルがあることを確認します.別の所にあるファイルを転送したい場合は下の「~/Desktop」のところを,転送したいファイルが置いてあるディレクトリの名前にします.

promptcd ~/Desktop return2 promptls -l return2 合計 4 -rw------- 1 g999999 student 641 3 31 07:28 index.html

最後の行は index.html というファイルがあることを示しています.

caution ls -llは,2つとも小文字のLです.数字の1と見間違いやすいので注意して下さい.この命令の働きはreview_s13.4.6 一覧表示で説明されています.

ftpコマンドで WWW サーバに接続する

次に ftp コマンドを実行してWWWサーバ(user)に接続します.ftp コマンドは,コンピュータの間でファイルを転送するためのコマンドです.

promptftp user return2 Connected to user.ecc.u-tokyo.ac.jp. 220 ProFTPD 1.2.9 Server (user.ecc.u-tokyo.ac.jp) [user.ecc.u-tokyo.ac.jp] Name (user:g999999):enter 331 Password required for g999999. Password: <あなたのパスワード> return2 230 User g999999 logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>

ユーザ名とパスワードに誤りがなければ上のように230 User g999999 logged in.と表示されます.誤りがあった場合はLogin failed.と表示されるので,その場合はquit return2 と入力して,ftp user return2 からやり直します.

WWWサーバのファイルを置くディレクトリに移動し,内容を確認する

WWWサーバ(user)に接続できたら,ファイルを置くディレクトリに移動します.

ftp> ls return2 500 EPRT not understood 200 PORT command successful 150 Opening ASCII mode data connection for file list drwxr-xr-x 6 0 1 512 Jun 10 2004 . drwxr-xr-x 6 0 1 512 Jun 10 2004 .. drwxr-xr-x 2 g999999 student 512 Jan 24 12:52 .public_html d--x--x--x 2 0 1 512 Jun 10 2004 bin d--x--x--x 2 0 1 512 Jun 10 2004 dev d--x--x--x 3 0 1 512 Jun 10 2004 usr 226 Transfer complete. ftp> cd .public_html return2 250 CWD command successful. ftp> pwd return2 257 "/.public_html" is current directory. ftp>

最後の pwd コマンドを入力して"/.public_html" is current directory.と表示されれば,移動に成功しています.違う表示だった場合は,もう一度 cd .public_html return2 からやり直して下さい.

caution 上の例の最初の行のlslも,小文字のLです.

WWWサーバのファイルを置くディレクトリにどんなファイルがあるかを見てみましょう.

ftp> ls return2 227 Entering Passive Mode (133,11,50,15,234,117). 150 Opening ASCII mode data connection for file list drwxr-xr-x 2 g999999 student 512 May 16 12:21 . drwxr-xr-x 6 0 1 512 Aug 22 2000 .. 226 Transfer complete. ftp>

この表示からは「.」と「..」というディレクトリしかないことが分かります.過去にファイルを転送していると,これ以外にすでに公開しているファイルの名前が表示されます.

caution 最初の行のlslは,またしても小文字のLです.

ファイルを転送する

いよいよファイルの転送です.下は index.html というファイルを転送する例ですが,別のファイルを転送する場合は,そのファイル名に置き換えて入力して下さい.

ftp> put index.html return2 local: index.html remote: index.html 200 PORT command successful. 150 Opening BINARY mode data connection for index.html 100% |*************************************| 641 2.35 MB/s 00:00 ETA 226 Transfer complete. 641 bytes sent in 00:00 (32.90 KB/s) ftp>

正しく転送できた場合にはTransfer complete.という表示が出ます.そうでない場合は,もう一度入力してみましょう.また,続けてput ファイル名 return2 を入力すれば他のファイルも転送できます.

転送できたかどうか,確認する

本当に転送できたかどうか,ファイルの一覧を表示させて確認しましょう.

ftp> ls return2 227 Entering Passive Mode (133,11,50,15,234,117). 150 Opening ASCII mode data connection for file list drwxr-xr-x 2 g999999 student 512 May 16 12:21 . drwxr-xr-x 6 0 1 512 Aug 22 2000 .. -rw-r--r-- 1 g999999 student 641 May 16 12:27 index.html 226 Transfer complete. ftp>

転送前と違って index.html という名前が表示されたので,確かにファイルが転送されたことが分かります.ファイルの時刻が転送されたときの時間になっていることにも注意して下さい.

caution しつこいようですが,最初の行のlslは,小文字のLです.

なお,一度ファイルを転送して,それを更新したい場合の手順も全く同じです.この場合は,ファイルが更新されたかどうかは,時刻やファイルの大きさを見て確認することになります.

ftpコマンドを終了する

最後にftpコマンドを終了します.

ftp> quit return2 221 Goodbye.

公開されたファイルをWWWブラウザで確認する

Safariのメニューバーでファイル場所を開くをしたのち,URLを入力するか, もしくはコマンドラインにおいて,

promptopen http://user.ecc.u-tokyo.ac.jp/~g999999/ return2

するかして,アクセスしてみてください.もちろんg999999のところには,自分のユーザ名をいれましょう.うまくいっていれば見えるはずです.

tips

教育用計算機システムにおいて, ftpでuser.ecc.u-tokyo.ac.jpの userに送ったファイルのパーミッションを変更するには,次のようにします.

ftp> quote site chmod 644 index.html return2 200 SITE CHMOD command successful

この例ではパーミッションを644, すなわち, すべての人が読めて, 自分も編集することができるようにパーミッションを変更しています. WWW上で読めるためには, ファイルのパーミッションをすべての人に対して読める状態になっていなくてはなりません.ftpを使ってファイルを転送すると自動的にパーミッションは644になるので,通常は特に変更する必要はありません.

パーミッションのモードを指定するときに quote site chmod a+r index.html とするような指定もできます.

user.ecc以外の他のftp サーバではこのようにしてパーミッションを変更できないことが多いので注意しましょう.

なお,user.ecc.u-tokyo.ac.jpには教育用計算機システムのネットワークに接続されたコンピュータからしかftpによる接続ができません.つまり,教育用計算機システムの外からuser.ecc.u-tokyo.ac.jpにファイルを転送するは,一度教育用計算機システムのコンピュータにファイルを転送し,教育用計算機システムのコンピュータにリモートログインした上で上の操作をする必要があります.