TCP/IP のネットワークでつながっているコンピュータ間でのファイ ルを転送には、 FTP (File Transfer Protocol)というプロトコルを 用ます。
[tiger@nctd55 ~]$ ftp moon Connected to moon (192.168.246.3). 220 (vsFTPd 1.1.3) Name (moon:tiger): tiger ! ユーザ名の入力 331 Please specify the password. Password: ! パスワードの入力 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> ascii ! アスキーモードへの変換 200 Switching to ASCII mode. ftp> mkdir newdir ! ディレクトリの作成 257 "/homes/home-t/tiger/newdir" created ftp> cd newdir ! ディレクトリの変更 250 Directory successfully changed. ftp> put abc.txt ! ファイルの転送 local: abc.txt remote: abc.txt 227 Entering Passive Mode (192,168,246,3,142,215) 150 Ok to send data. 226 File receive OK. 9 bytes sent in 0.000312 secs (28 Kbytes/sec) ftp> bye ! 終了 221 Goodbye.
ftp> get efg.txt local: efg.txt remote: efg.txt 200 PORT command successful. 150 Opening ASCII mode data connection for efg.txt (29824 bytes). 226 Transfer complete. 31169 bytes received in 0.11 seconds (276.19 Kbytes/s) ftp>
ファイルを送る場合 put abc.txt (abc.txt のファイル名のまま送る) または、 put abc.txt efg.txt (efg.txt というファイル名に変えて送る) ファイルを受け取る場合 get abc.txt (abc.txt のファイル名のまま受け取る) または、 get abc.txt efg.txt (efg.txt というファイル名に変えて受け取る)
ftp> ?とすると、ftp のモードで使えるコマンドの一覧が出ます。 そこコマンドの意味を知るには、
ftp> ? comman-nameとします。例えば、
ftp> ? mget mget get multiple filesとなります。
よく使うコマンドは、
cd ! ディレクトリの変更 ls ! リストの表示 pwd ! カレントディレクトリの表示 mkdir ! ディレクトリの作成 lcd ! ローカルディレクトリの変更 ! ! ローカルホストに対するコマンド発行 ! よく使うもの -- !pwd, !ls put/get ! ファイルを渡す、受け取る mput/mget ! 複数のファイルをえ渡す、受け取る prompt ! 確認をする/しないのモードを変更 bin ! バイナリモードへの変更 ascii ! アスキーモードへの変更これだけ覚えていれば、実際上は、ほとんど十分です。
mget, mput というコマンドを用います。このコマンドでは、 ワイルドカード(*)が使えます。
例えば、そのディレクトリにあるファイルを全て、put したけ れば、
ftp> mput *とします。拡張子が、html というファイルだけを get したければ
ftp> mget *.htmlとします。
ftp> mget *.html mget mh.html?と聞いてきますので、ここで、"y" をタイプすれば、そのファイルを 転送、"n" をタイプすれば転送しません。
対象となる全てのファイルを、確認なしで転送したい場合は、mget/mput のコマンドを発行する前に、
ftp> prompt Interactive mode off.とします。これで、Interactive mode が on から off に変わります。 もう一度、prompt を実行すると、
ftp> prompt Interactive mode on.というように、off から on に変わります。(トグルになっています)
ASCII ファイルは ASCII モードで、バイナリファイルは、バイナリ モードでファイルの転送を行うのが原則です。 とくに、バイナリファイルは、必ずバイナリモードで転送しないと、 ファイルは完全には送れません。
UNIX-UNIX 間では、ASCII ファイルをバイナリモードで送っても、とくに 問題ありませんが、UNIX-DOS/MAC 間の転送では、ASCII モードで送らない と、改行コードの違いが吸収されません。
バイナリモードへの切替え
ftp> bin 200 Switching to Binary mode.ASCII モードへの切替え
ftp> ascii 200 Switching to ASCII mode.
通常の ftp は、相手先のホストにも、自分のアカウントがないと、 利用できません。
これに対し、匿名ユーザでの ftp の login を許しているサービスを anomymous FTP といいます。このサービスは、フリーソフトの配布や データの公開を行っているサイトで行われています。
ほとんどの anonymous FTP では、get(mget) だけが許されており、 put(mput) は許されていません。
anonymous FTP は、次の様に利用します。
anonymous FTP のログイン時のログを以下に示します。
login 後は、put(mput), mkdir が出来ないこと以外は、通常の ftp と同様な 使い方ができます。[tiger@nctd55 ~]$ ftp ftp.vinelinux.org Connected to ftp.vinelinux.org (133.1.84.71). 220 ProFTPD 1.2.9 Server (ftp.vinelinux.org) [vinelinux.ime.cmc.osaka-u.ac.jp] Name (ftp.vinelinux.org:tiger): anonymous 331 Anonymous login ok, send your complete email address as your password. Password: 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp>