HOME >> ネットワークの管理 >> ファイル転送プログラムを利用する
■ ファイル転送プログラムを利用する [ ftp ]
UNIX の環境でファイル転送を行う場合には 「ftp コマンド」 を利用します。
コマンドを起動すると 「ftp>」 というプロンプトが表示されます。
ここで、「ftp コマンド」 内で利用できる命令(サブコマンド)を入力することで、接続先ホストでのファイル操作・及び転送作業を行うことができます。
リモートホストへの接続には 「ftp コマンド」 起動時に、引数にホスト名を指定する方法と、
一旦、「ftp コマンド」 を起動した後に 「ftp>」プロンプトから「open コマンド」 を使って接続する方法があります。
リモートホストとの接続を終了するには、「close コマンド」 を使います。
「exit コマンド」 で、「ftp コマンド」 を終了させます。
% ftp ax.misty.ne.jp ←── ax.misty.ne.jp サーバーに接続する
Connected to ax.misty.ne.jp.
220 ax.misty.ne.jp FTP server (Version 6.00LS) ready.
Name (ax.misty.ne.jp:hoge): hoge ←── ユーザーIDを入力する
331 Password required for hoge.
Password: ←── ログインパスワードを入力する(画面には表示されません)
230 User hoge logged in, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> close ←── リモートホストとの接続終了
ftp> exit ←── ftp コマンドの終了
%
「ftp コマンド」起動時のメッセージはサーバーの設定によって違います。
% ftp ←── ftp コマンドを実行
ftp> open ax.misty.ne.jp ←── open コマンドでサーバーに接続
Connected to ax.misty.ne.jp.
220 ax.misty.ne.jp FTP server (Version 6.00LS) ready.
Name (ax.misty.ne.jp:admin): hoge ←── ユーザーIDを入力する
331 Password required for hoge.
Password: ←── ログインパスワードを入力する(画面には表示されません)
230 User hoge logged in, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> close ←── リモートホストとの接続終了
ftp> exit ←── ftp コマンドの終了
%
最初に ftp でサーバーに接続する際には、コマンドにホストを引数指定するほうが簡単です。
一定時間接続したままの状態ですとタイムアウトで接続が切れていることがあります。
その際には、「open」コマンドを使って再ログインすると良いでしょう。
現在のファイル転送モードを調べるには 「type」コマンドを
ディレクトリ操作に関するサブコマンドは UNIX のコマンドと同じ為、なじみやすいと思います。
「ls」と「cd」、「pwd」 の3つのサブコマンドが用意されています。
ftp> ls ←── ls コマンドでファイルの一覧が表示されます
150 Opening ASCII mode data connection for '/bin/ls'.
total 80764
-rw-r--r-- 1 hoge group 503 Mar 31 2003 index.html
-rw-r--r-- 1 hoge group 16 Mar 31 2003 sample.html
-rw-rw-rw- 1 hoge group 79736 Nov 25 14:11 member.dat
drw-rw-rw- 1 hoge group 512 Nov 25 14:11 test
226 Transfer complete.
ftp>
「ls 」コマンドの表示形式は、UNIX コマンドの「ls -l」 と同じです。
ftp> pwd ←── カレントディレクトリを表示
257 "/home/hoge" is current directory.
ftp>
ftp> cd test ←── ディレクトリを test に移動する
250 CWD command successful.
ftp> pwd
257 "/home/hoge/test" is current directory.
ftp>
ファイルの転送モードを調べるには 「type」コマンドを使います。
「ascii(アスキー文字)」コマンドと「binary(バイナリ)」コマンドで、転送ファイルの種類を設定することができます。
・ Windows と UNIX の間でテキストファイルのやり取りをする場合には、ascii を指定すると、改行文字をそれぞれの環境に適したものに変換してくれます。
(文字コードは変更されません。)
・ プログラムや圧縮ファイルのやり取りには binary を指定します。
ftp> type 
Using binary mode to transfer files. ←── 現在はバイナリモードに設定されている
ftp>
ftp> ascii 
200 Type set to A. ←── アスキーモードに設定された
ftp> binary 
200 Type set to I. ←── バイナリモードに設定された
リモートホストにあるファイルをローカルホストへ転送するには 「get」コマンドを使います。
取得されたファイルは 「ftp コマンド」 を起動したときのカレントディレクトリに保存されます。
ftp> get access_log  ←── access_log ファイルを取得する
local: access_log remote: access_log
150 Opening ASCII mode data connection for 'access_log' (503 bytes).
100% |********************************************| 507 &nbps; 00:00 ETA
226 Transfer complete.
507 bytes received in 0.00 seconds (1.27 MB/s)
ftp> ↑ 取得したファイルのバイト数と転送速度が表示されます
ファイル転送中には、転送状況がパーセンテージと 「*」マークによって表示されます。
「get」コマンドでは、1つずつしかファイル転送が行えませんが、「mget」コマンドを使うと複数のファイルを一度に転送することができます。
また、正規表現が使えるため、決まった形式のファイル名のみを取り出してダウンロードすることも可能です。(正規表現って何?)
指定した条件にマッチしたファイルごとに、ファイルを取得するかどうかを確認してきますので、y(Yes=取得する) か n(No=取得しない) で答えていきます。
ftp> mget *.txt  ←── 拡張子が txt のファイルのみ取得する
mget sample.txt? n  ←── ファイルを取得しない
mget message.txt? y  ←── ファイルの転送を行う
150 Opening BINARY mode data connection for 'message.txt' (5816314 bytes).
100% |********************************************| 5679 KB 00:00 ETA
226 Transfer complete.
5816314 bytes received in 0.76 seconds (7.28 MB/s)
mget access_log.txt? y 
550 boo.bak: Permission denied. ←─ ファイルの所有者でない場合には取得できません
ftp>
転送されたファイルの保存先に同名のファイルがある場合には、上書きして保存してしまいます。
もし、同名ファイがある場合には、ファイルを移動しておくか、保存先であるローカルホストのカレントディレクトリを移動してからファイルの転送を行ってください。
ローカルホストからリモートホストへファイルを送りたい場合には 「put」コマンドを使います。
ローカルホストのカレントディレクトリにあるファイルを、リモートホストのカレントディレクトリに送ることができます。
「get」コマンド・「put」コマンドでは、ディレクトリの転送を行うことはできません。
ftp> put introduction.txt  ←── introduction.txt ファイルを取得する
local: introduction.txt remote: introduction.txt
150 Opening ASCII mode data connection for 'introduction.txt'.
100% |********************************************| 796 --:-- ETA
226 Transfer complete.
796 bytes sent in 0.00 seconds (1.14 MB/s)
ftp> ↑ 転送したファイルのバイト数と転送速度が表示されます
ファイル転送中には、転送状況がパーセンテージと 「*」マークによって表示されます。
「get」コマンドでは、1つずつしかファイル転送が行えませんが、「mget」コマンドを使うと複数のファイルを一度に転送することができます。
また、正規表現が使えるため、決まった形式のファイル名のみを取り出してダウンロードすることも可能です。(正規表現って何?)
指定した条件にマッチしたファイルごとに、ファイルを取得するかどうかを確認してきますので、y(Yes=取得する) か n(No=取得しない) で答えていきます。
ftp> mput *.txt  ←── 拡張子が txt のファイルのみ送信する
mput sample.txt? n  ←── ファイルを送信しない
mput message.txt? y  ←── ファイルの送信を行う
150 Opening ASCII mode data connection for 'message.txt' (5816314 bytes).
100% |********************************************| 5679 KB 00:00 ETA
226 Transfer complete.
5816314 bytes sent in 0.76 seconds (7.28 MB/s)
ftp>
転送されたファイルの保存先に同名のファイルがある場合には、上書きして保存してしまいます。
もし、同名ファイがある場合には、ファイルを移動しておくか、保存先であるリモートホストのカレントディレクトリを移動してからファイルの転送を行ってください。
「ftp コマンド」内では、この他にも様々なサブコマンドが用意されております。
「help」コマンドを使うと、どんなコマンドが用意されているか確認することができます。
ftp> help ←── ls コマンドでファイルの一覧が表示されます
Commands may be abbreviated. Commands are:
! idle ls recv restrict
$ disconnect newer reget rhelp
account edit nlist passive tenex
append exit nmap preserve trace
ascii form ntrans progress type
bell ftp open prompt umask
binary macdef page proxy user
bye mdelete mode rmdir verbose
case mdir modtime rstatus size
cd mget more runique status
cdup mkdir mput send struct
get mls msend sendport sunique
gate image put site system
glob lcd pwd rename ?
hash less quit reset
help lpwd quote restart
ftp> help image ←── image コマンドの説明が表示されます
image set binary transfer type
ftp>
「help」コマンドの引数にコマンド名を指定すると、指定したコマンドの説明が表示されます。
「prompt」コマンドを使うと、「mget」や「mput」コマンドでのファイル転送を確認メッセージ無しに行うことができるようになります。
ftp> prompt
Interactive mode off. ←── 確認表示をオフにする
ftp>
|