Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

ftp

FTPを使用してファイルを転送する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
ftp [-v] [-i] [-n] [HOST]

 ftpコマンドは、FTPプロトコルを使用したファイル転送プログラムです。HOSTで指定したリモートホストに接続して、ファイル転送を行います。

 ftpコマンドを実行すると、HOSTで指定したリモートホストへのログイン操作のためのプロンプトが表示されます。ログインが完了すると、対話型のコマンド入力プロンプトへ移行し、ファイルの転送のための、操作を行うことが可能になります。

FTP(ファイル転送プロトコル)

 FTPとはファイルをコンピュータ間でやりとりするための通信手順を規定したものです。FTPを使用するプログラムはこの手順に従って送受信を行います

リモートホスト

 リモートホストとは、ネットワーク上に存在する他のコンピュータのことです。ホストというのは、1台のホストマシンにたくさんのTTY端末を接続して利用していたことからきている言葉です

オプション
① -v
転送結果に加えて、リモートホストから返されるすべての情報(レスポンス)を表示します。
② -i
通常、ワイルドカードを使うなどして複数のファイルを転送する時には、それぞれの転送前に確認を行います。このオプションを指定すると、この確認を省略することができます。
③ -n
通常、ホームディレクトリ内のファイル「.netrc」に自動ログインの指定をしておくことで、自動的にログインすることができますが、このオプションを指定すると、自動ログインを行なわず、常にリモートホストへログインすることを要求します。
.netrc

 「.netrc」は、ftpコマンド用の環境設定ファイルです。このファイルに各種の情報を設定することで、コマンドの簡略化を行うことが可能となります

引数
① HOST
ファイルを転送するリモートホストを指定します。「takeda@takeda.jp」のようなドメイン名、あるいは「192.168.0.1」のようなIPアドレスで指定します。

 ログインが完了すると、コマンド入力によって、ファイル転送に関係したさまざまな命令を実行できます。主なものをまとめると次のようになります。

FTP操作を行うコマンド
コマンド内容
open HOSTHOSTに指定したリモートホストに接続する
closeリモートホストとの接続を切断する
byeftpコマンドの実行を終了する
binaryファイル転送モードをバイナリモードにする
(bi)バイナリファイルの転送時には実行しておく必要がある
asciiファイル転送モードをASCIIモードにする
ファイル転送モードのデフォルトはASCIIモードである
lsリモートホストのディレクトリ/ファイルを一覧表示する
cd DIRリモートホストのカレントディレクトリを、DIRに指定したディレクトリに変更する
pwdリモートホストのカレントディレクトリを表示する
mkdirリモートホストにディレクトリを作成する
chmodリモートホストのディレクトリ/ファイルのアクセス権を変更する
lcd DIRローカルマシンのカレントディレクトリを、DIRに指定したディレクトリに変更する
また、「lcd .」と入力すると、ローカルマシンのカレントディレクトリを表示する
get rFILE [lFILE]rFILEに指定したリモートホストのファイルを、ローカルマシンへ転送する
rFILE [lFILE]lFILEを指定して、転送先のパスやファイル名を指定することもできる。省略時には、ローカルマシンのカレントディレクトリに同一名で転送する
put lFILE [rFILE]lFILEに指定したローカルマシンのファイルを、リモートホストへ転送する
lFILE [rFILE]rFILEを指定して、転送先のパスやファイル名を指定することもできる。省略時には、リモートホストのカントディレクトリに同一名で転送する
mget rFILE...rFILE...に指定した、リモートホストのひとつあるいは複数のファイルを、ローカルマシンへ転送する。複数のファイルをまとめて転送する際には、ファイル名スペースで区切って指定する。また、ワイルドカードを使った指定も可能である
mput lFILE...lFILE...に指定した、ローカルマシンのひとつあるいは複数のファイルを、リモートホストへ転送する。複数のファイルをまとめて転送する際には、ファイル名をスペースで区切って指定する。また、ワイルドカードを使った指定も可能である
prompt通常、ワイルドカードを使うなどして複数のファイルを転送する場合などには、それぞれのファイル転送時に確認を行うが、このコマンドを実行することで、その確認を省略することができる
ASCIIモードとバイナリモード

 ASCIIモードとは、文書ファイルなどのテキストファイルを転送するためのモードです。このモードはファイル転送にともなって、改行コードを転送先のコード系に変換します。一方バイナリモードは、ASCIIコード以外のコードを含むものを転送するためのモードで、コード系の変換を行いません

リモートホスト上のファイルをローカルマシンに転送する
$ ftp 192.168.0.1 
Connected to 192.168.0.1 (192.168.0.1).
220 takeda FTP server (Version wu-2.6.2-8) ready.
Name (192.168.0.1:takedak):takedak
ログインユーザ名を入力
331 Password required for takedak.
Password:
パスワードはエコーバックされない
230 User takedak logged in. Access restrictions apply.
Remote system type is UNIX.
ログイン成功
Using binary mode to transfer files.
ftp> binary
ファイル転送モードをバイナリモードに変更
200 Type set to I.
ftp> mkdir work
新規ディレクトリ「work」を作成
257 "/work" new directory created.
ftp> ls
カレントディレクトリ内のディレクトリ/ファイルを一覧表示
227 Entering Passive Mode (192,168,0,1,132,153)
150 Opening ASCII mode data connection for directory listing.
total 8
drwxr-xr-x 2 500 500 4096 Apr 13 10:13 work
226 Transfer complete.
ftp> lcd download
ローカルマシンのカレントディレクトリを「download」に変更
Local directory now /home/cmd/download
ftp> !ls
「!」を付けてコマンドを実行すると、そのコマンドはローカルマシンで実行される
227 Entering Passive Mode (192,168,0,1,53,241)
150 Opening ASCII mode data connection for directory listing.
total 32
-rw-rw-r-- 1 500 500 6 Apr 13 10:43 file1
-rw-rw-r-- 1 500 500 12 Apr 13 10:43 file2
-rw-rw-r-- 1 500 500 18 Apr 13 10:43 file3
-rw-rw-r-- 1 500 500 23 Apr 13 10:44 obj1
226 Transfer complete.
ftp> get obj1
ファイル「obj1」をローカルマシンに転送
local: obj1 remote: obj1
227 Entering Passive Mode (192,168,0,1,62,245)
150 Opening BINARY mode data connection for obj1 (23 bytes).
226 Transfer complete.
転送成功
23 bytes received in 9.7e-05 secs (2.3e+02 Kbytes/sec)
ftp> mget file*
ファイル名が「file」から始まるファイルをすべてローカルマシンに転送
mget file1? y
確認のプロンプトに対しては「y」(はい)または「n」(いいえ)を入力
227 Entering Passive Mode (192,168,0,1,140,168)
150 Opening BINARY mode data connection for file1 (6 bytes).
226 Transfer complete.
6 bytes received in 7.7e-05 secs (76 Kbytes/sec)
mget file2? y
227 Entering Passive Mode (192,168,0,1,68,251)
150 Opening BINARY mode data connection for file2 (12 bytes).
226 Transfer complete.
12 bytes received in 8e-05 secs (1.5e+02 Kbytes/sec)
mget file3? y
227 Entering Passive Mode (192,168,0,1,123,193)
150 Opening BINARY mode data connection for file3 (18 bytes).
226 Transfer complete.
18 bytes received in 8e-05 secs (2.2e+02 Kbytes/sec)
ftp> bye
ftpコマンドの実行を終了
221-You have transferred 59 bytes in 4 files.
221-Total traffic for this session was 1613 bytes in 5 transfers.
221-Thank you for using the FTP service on takeda92.
221 Goodbye.
$

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5