データを送る(put)
- パソコンのデータを、Webサーバに転送する方法を説明します。
ここでの転送とはデータが移動しているのではなく、改行コードを変換してWebサーバにコピーしています。 - 使用するコマンドは「put」です。
ここでは、作業ディレクトリにある「index.html」を「/public_html」に転送します。
「cd public_html」を実行した後に転送の指示をすることになります。
このコマンドは「put ファイル名」の書式で実行します、ここでは「put index.html」を実行します。
ftp> cd puplic_html
ftp> put index.html
ftp> _
- コマンドを実行して「ftp>」のプロンプトだけが表示されれば成功です。
間違えて「put index.htm」を実行すると
ftp>cd puplic_html
ftp>put index.htm
index.htm: File not found
ftp> _
- 「index.htm: File not found」は「index.htm」が無いというエラーです。
- 注意は、パソコンの作業ディレクトリに「サブディレクトリ」がある場合で、転送でデータの指定をサブディレクトリを含めて指定するとWebサーバの作業ディレクトリに転送されます。
- 例として、パソコンの作業ディレクトリにディレクトリ「new」、中にファイル「index.html」を転送します。
コマンドは「put new/index.html」で実行すると。
ftp>cd puplic_html ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp>put new\index.html ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 136 Jan 9 14:03 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _
- 作業ディレクトリの「index.html」が上書きされています。
パソコンの「new/index.html」は、Webサーバでも「new/index.html」に転送されるべきですが、作業ディレクトリの「/public_html」に転送されます、これは「Windows」の特色で、端的にいうとバグです。
前述の「new」の中に転送したい場合は「put new/index.html new/index.html」になります。 - ディレクトリがなければ「new/index.html: No such file or directory.」というエラーが表示されます。
データの名前とファイル名置換(glob)
- データ名を簡単に指定したい場合、Windowsではワイルドカードを使います。
- 「?」が任意の1文字
- 「*」が複数の文字
- に該当して、ファイル名やディレクトリ名を曖昧に指定するときに使い置換えをファイル名置換といいます。
- FTPやUNIXではメタ文字といい、Webサーバでは「*?[]{}~」で詳細に指定できます。
- ファイル名置換を使用するときはグロブモードが「オン」である必要があります。
グロブモードの切替えを行うコマンドがグロブ「glob」で、デフォルトで「オン」です。
「ls」と「cd」はグロビングが「オフ」の制限を受けません。
「delete」はファイル名置換が無効です。- 単語に「*」「?」「[」「{」のいづれかを含む場合、その単語はファイル名置換(グロブ(globbing))の候補になります。
この単語をグロブパターンとして、マッチするファイル名のリストをアルファベット順で整列したもので置き換えます。 - ファイル名マッチの際にファイル名の先頭または「/」の直後の文字「.」は「/」と同様に明示的にマッチさせなければなりません。
- 文字「*」は、空文字列を含むどのような文字列にもマッチします。
「*」1文字は全てのディレクトリにもマッチします、リストを表示する場合は作業ディレクトリのデータすべてと1階層下のディレクトリ内のデータ全てを指定したことになります。 - 文字「?」は、どのような1文字にもマッチします。
- 「[...]」は角括弧の文字列のいずれか1文字にマッチします。
従って「a[bc]」は「ab」「ac」に展開され「ab」または「ac」だけにマッチします。 - また「[...]」内は文字の対を「-」でつなぐことで、文字順でその2文字の範囲にある文字のいずれかにマッチします。
従って「a[b-d]」は「a[bcd]」「a[0-3]」は「a[0123]」に展開されます。
更に「a[bcd]」は「ab」「ac」「ad」に「a[0-3]」は「a0」「a1」「a2」「a3」に展開されます。 - 「{...,...,...}」は波括弧の「,」で区切られた文字列のいずれか1つの文字列にマッチします。
従って「a{bc,de}f」は「abcf adef」にだけマッチします。
「public_html/index.{bak,old}.html」は「public_html/index.bak.html」と「public_html/index.old.html」にマッチします。 - 単語の先頭の「~」は、お客様のホームディレクトリ名に展開されます。
「~」を単語の先頭以外で使用したときは展開されずに単に文字として扱われます。
- 単語に「*」「?」「[」「{」のいづれかを含む場合、その単語はファイル名置換(グロブ(globbing))の候補になります。
- ファイル名置換を使用するときはグロブモードが「オン」である必要があります。
- たとえば「*.html」は、末尾に「.html」のつくデータすべてを指定できます。
- パソコンの作業ディレクトリに下の4個のファイルがあるときは「*.html」に該当するのは上から3個です。
- abc.html
- def.html
- ghi.html
- jkl.dat
- 3個のファイルをまとめて転送するために「put *.html」を実行します。
ftp>cd puplic_html ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 136 Jan 9 14:03 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp>put *.html ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 239 Jan 9 14:08 abc.html -rw-r--r-- 1 1000 170 136 Jan 9 14:03 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _
- 思惑とは違って「abc.html」だけが転送されました。
これは「put」が1個のデータを転送するコマンドだからで最初に条件に符合した「abc.html」が転送されました。
従ってファイル名置換が動作していることが判ります。 - そこで、複数のデータをまとめて転送できるコマンド「mput」を使います。
複数のデータをまとめて送る(mputとprompt)
- 複数のデータをまとめて転送するコマンドが、マルチプット「mput」です。
- 「.html」のつくファイル3個をまとめて転送するために「mput *.html」を実行します。
ftp>cd puplic_html ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 136 Jan 9 14:03 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp>put *.html mput abc.html? y mput def.html? y mput ghi.html? y ftp>ls -l -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 239 Jan 9 14:12 abc.html -rw-r--r-- 1 1000 170 239 Jan 9 14:12 def.html -rw-r--r-- 1 1000 170 239 Jan 9 14:12 ghi.html -rw-r--r-- 1 1000 170 136 Jan 9 14:03 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _
- 今度は「mput データ名?」の問い合わせに、データごとに転送実行は「y」、転送不実行は「n」を入力してください。
今回は、3回「y」を入力しました。 - 問い合わせの度に「y」をしたくないときは、プロンプト「prompt」を実行してインタラクティブモードを「オフ」にしてください。
デフォルトで「オン」です。
データを得る(getとmget)
データを得るコマンドがゲット「get」とマルチゲット「mget」で、Webサーバからパソコンに転送します。
先ほどの「put」と「mput」とはデータを転送する方向が逆で機能はおなじです。
データの削除(deleteとmdel)
Webサーバのデータを削除するコマンドがデレイト「delete」またはマルチデレイト「mdel」です。
「delete」はデータを1個、削除します「mdel」は、複数のデータをまとめて削除します。
ディレクトリの作成と削除(mkdirとrmdir)
ディレクトリの作成はメークディレクトリ「mkdir」、削除はリムーブディレクトリ「rmdir」です。
ディレクトリの中が空でないと削除できません。
転送モード(asciiとbinary)
- データ転送には、テキストファイルとバイナリファイルがあります。テキストファイルというのは、HTML文書やプログラムのソースなどなど「人間が読んでわかるファイル」です。画像やJavaクラスファイルなどは、バイナリファイルです。
FTPでの転送には「ASCIIモード」と「binaryモード」の二種類があります。前者はテキストファイルの転送、後者はバイナリファイルのためのモードです。バイナリファイルをASCIIモードで転送したりすると、ウェブ経由できちんと見られなくなってしまいます。
userサーバにログインした直後は、ASCIIモードになっています。どのモードで転送がされているかは、転送の際に表示されるメッセージから判断できます。
ftp> put index.html
200 PORT command successful.
150 Opening ASCII mode data connection for index.html.
226 Transfer complete.
local: index.html remote: index.html
4939 bytes sent in 0.023 seconds (208.99 Kbytes/s)
- このように「Opening ASCII/BINARY mode ...」と表示されます。
モードをASCIIモードにしたい場合のコマンドは、"ascii"です。逆に、binaryモードにしたい場合には"bin"です。なお、webputを使って転送を行った場合には、自動的にバイナリファイルかテキストファイルかを判断して適切なモードで転送するようになっています。
ログアウトと終了(bye)
コマンドの終了「bye」を実行するとログアウト後にftpを終了します。
よく使うFTPコマンド
コマンド | 略 | コマンドの意味 |
---|---|---|
open | o | Webサーバと接続を開始(ログイン) |
pwd | pwd | Webサーバの作業ディレクトリを表示 |
ls | ls | Webサーバの作業ディレクトリのデータを一覧表示 |
cd | cd | Webサーバ作業ディレクトリを変更(移動) |
put | put | データをパソコンからWebサーバに転送 |
mput | mpu | 複数のデータをパソコンからWebサーバに転送 |
get | get | データをWebサーバからパソコンに転送 |
mget | mge | 複数のデータをWebサーバからパソコンに転送 |
delete | del | Webサーバのデータを削除 |
mdel | mde | Webサーバの複数のデータを削除 |
mkdir | mkd | Webサーバにディレクトリを作成 |
quote | quo(li) | Webサーバのコマンドを実行 |
ascii | asc | データ転送モードをアスキーモードに変更 |
binary | bin | データ転送モードをバイナリモードに変更 |
prompt | pro | インタラクティブモードの切替え |
verbose | v | 饒舌モードの切替え |
status | st | 現在のftpの状態を表示します |
close | dis | Webサーバと接続を切断(ログアウト) |
help | ? | FTPコマンドの一覧を表示 |
quit | bye | Webサーバと接続を切断してftpを終了 |
WebサーバとURLについて
- サーバの行っているサービスは「FTPサービス」と「HTTPサービス」があります。
- 「FTPサービス」は...
- はおもにお客様のデータを受信するサービスです。
- 「FTPサービス」を提供しているのは「FTPサーバ」です。
- サービスの詳細はここで説明した通りです。
- 「HTTPサービス」は...
- 「HTTP」はすべての人に「ホームページ」のデータを送信するサービスです。
- 「HTTPサービス」を提供しているのは「Webサーバ」です。
- Webサーバは「http://swan.syscom.ne.jp/~username/」のURLでこのサービスを提供しています。
- Webサーバは、この要求で「username」のホームディレクトリから「public_html」のディレクトリを検索して、ディレクトリがあれば中のデータを送信します。
- データは「index.html」のファイルから検索をして見つかればそのHTMLテキストを送信します。
- インデックスデータがない場合は、ディレクトリの内容をリストとして送信します。
他のFTPソフト
ここで説明してきたのはftpコマンドでデータを操作する方法でしたが他に下記のような方法があります。
- この他にも「インターネットエクスプローラ」を使用する方法
- 市販のソフトを使用する方法
- フリーウエアやシェアウエアを使用する方法
おわりに
ここに書いてあることをマスターすれば、ホームディレクトリの操作は万全です。
お客様の抜群のセンスで素晴らしいホームページを公開してください。