1. ホーム
  2. コース一覧
  3. Linux応用コース
  4. ファイルの転送

Linux応用コース1/11

ファイルの転送

ftpコマンドとは

FTPサーバーとのFTP通信には、GUIであれば通常FTPクライアントソフトを使用して、ファイルやデータのやり取りをしますが、Linuxではftpコマンドを使用し、FTPサーバーに接続してファイルをアップロードしたり、アクセス権を変更したり、FTPサーバー内を操作出来るようになります。

基本的な使い方

ftp FTPサーバーのアドレス

よく利用するオプション

オプション説明
-vFTPサーバーの処理後のメッセージを表示する
-i確認を行わない

使用例

以下のような場合

項目
FTPサーバーのアドレスxxx1.xxx2.xxx3.xxx4
ユーザー名user
パスワードpass
ftp xxx1.xxx2.xxx3.xxx4
Connected to xxx1.xxx2.xxx3.xxx4.
220 (vsFTPd 3.0.3)
Name (xxx1.xxx2.xxx3.xxx4:user): user ←ユーザ名を入力します
331 Please specify the password.
Password: ←パスワードを入力します
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

途中で、ユーザー名とパスワードを聞かれるので、入力して進みます。

※ Linuxの仕様で、パスワード入力時には文字が表示されません。

-vオプション

一つ一つの操作に対し、確認のためにサーバーで処理した内容を表示するように出来ます。

ftp -v 接続先アドレス

-iオプション

オプションなしの状態では、複数ファイルをアップロードする時に確認のメッセージが表示されますが、オプションを付けると確認無しで出来ます。

ftp -i 接続先アドレス

FTPサーバー内で使える様々なコマンド

コマンド説明
openサーバーに接続する
closeFTPサーバーから切断する
quitFTPモードを終了する
lsFTPサーバー内のファイルやディレクトリを一覧表示する
ascアスキーモードでファイルを扱う
binバイナリモードでファイルを扱う
putLinux内のファイルをアップロードする
getサーバーからダウンロードする
mput複数ファイルをアップロードする
mget複数ファイルをダウンロードする
mkdirディレクトリを作成する
deleteファイルを削除する
chmodファイルのアクセス権の変更する

openコマンド

FTPモードにしてから、FTPサーバーに接続します。

ftp> open 接続先アドレス

ftp
ftp> open xxx1.xxx2.xxx3.xxx4
Connected to xxx1.xxx2.xxx3.xxx4.
220 (vsFTPd 3.0.3)
Name (xxx1.xxx2.xxx3.xxx4:user): user ←ユーザ名を入力します
331 Please specify the password.
Password: ←パスワードを入力します
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

途中で、ユーザー名とパスワードを聞かれるので、入力して進みます。

closeコマンド

FTPサーバーから切断します。

ftp> close
221 Goodbye.
ftp>

これでFTPサーバーから切断されます。

quitコマンド

FTPモードを終了します。

ftp> quit
221 Goodbye.

FTPモードが終了して、Linuxコマンドの受け付け表示になります。

lsコマンド

Linuxコマンドと同様で、FTPサーバー内のファイルやディレクトリを一覧表示します。

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r-- 1 ftp ftp    51 Jan 09 2022 hogehoge.txt
226 Directory send OK.
ftp>

FTPサーバー内のファイルやディレクトリが一覧表示されます。

ascコマンド

アップロードやダウンロードするファイルをアスキーモードで扱います。

ftp> asc
200 Switching to ASCII mode.
ftp>

アスキーモードでファイルを扱える状態になります。

binコマンド

アップロードやダウンロードするファイルをバイナリモードで扱います。

ftp> bin
200 Switching to Binary mode.
ftp>

バイナリモードでファイルを扱える状態になります。

putコマンド

Linux内のファイルをFTPサーバーにアップロードします。

ftp> put fuga.txt
local: fuga.txt remote: fuga.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (169.4037 kB/s)
ftp>

「fuga.txt」ファイルがFTPサーバーにアップロードされました。

getコマンド

FTPサーバー上のファイルをLinux内にダウンロードします。

ftp> get hoge.txt
local: hoge.txt remote: hoge.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for hoge.txt (40 bytes).
226 Transfer complete.
40 bytes received in 0.00 secs (494.4620 kB/s)
ftp>

「hoge.txt」ファイルがLinux内にダウンロードされました。

mputコマンド

Linux内の複数ファイルをFTPサーバーにアップロードします。

ftp> mput fuga*.txt
local: fuga01.txt remote: fuga01.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (169.4037 kB/s)
local: fuga02.txt remote: fuga02.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (169.4037 kB/s)
local: fuga03.txt remote: fuga03.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (169.4037 kB/s)
ftp>

ワイルドカードによって「fuga○○.txt」という指定になり、「fuga01.txt」~「fuga03.txt」までが、FTPサーバーにアップロードされました。

ftpコマンドに -iオプションを付けない場合、1ファイルごとにY(Yes)、N(No)の選択を促すメッセージが表示されます。

mgetコマンド

FTPサーバー上のファイルをLinux内にダウンロードします。

ftp> mget hoge*.txt
local: hoge01.txt remote: hoge01.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for hoge01.txt (40 bytes).
226 Transfer complete.
40 bytes received in 0.00 secs (494.4620 kB/s)
local: hoge02.txt remote: hoge02.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for hoge02.txt (40 bytes).
226 Transfer complete.
40 bytes received in 0.00 secs (494.4620 kB/s)
local: hoge03.txt remote: hoge03.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for hoge03.txt (40 bytes).
226 Transfer complete.
40 bytes received in 0.00 secs (494.4620 kB/s)
ftp>

ワイルドカードによって「hoge○○.txt」という指定になり、「hoge01.txt」~「hoge03.txt」までが、Linux内にダウンロードされました。

ftpコマンドに -iオプションを付けない場合、1ファイルごとにY(Yes)、N(No)の選択を促すメッセージが表示されます。

mkdirコマンド

Linuxコマンドと同様で、ディレクトリを作成します。

ftp> mkdir myworks
257 "/home/myworks" created
ftp>

「myworks」というディレクトリが作成されました。

deleteコマンド

FTPサーバー上のファイルを削除します。

ftp> delete hoge.txt
250 Delete operation successful.
ftp>

「hoge.txt」というファイルが削除されました。

chmodコマンド

Linuxコマンド同様で、アクセス権を変更します。

ftp> chmod 777 fuga.txt
200 SITE CHMOD command ok.
ftp>

「fuga.txt」というファイルのアクセス権が777に変更されました。

他にもFTPモードで使えるコマンドは沢山あります。

たとえば、?で使えるコマンドを一覧表示出来ます。

ftp> ?

ftpコマンドの注意点

今まで勉強してきたftpコマンドですが、認証時のパスワードやデータ送受信の内容は一切暗号化されていないので、実際に使用する場合は、sftpコマンドやscpコマンド、もしくはSSH接続での運用の方が望ましいと言われています。

まとめ

ftpコマンドでは、FTPクライアントソフトを用いてのファイルのアップロードやダウンロードをするだけでなく、FTPサーバー内をLinuxのように扱えて、とても便利ですよね。

またftpコマンドで使えるコマンドが他にもありますので、御自分でも色々調べてみてはどうでしょうか。

それではシナリオを起動して、演習で学んでいきましょう。

問題を解くためには、十分な画面サイズのPC環境をご利用下さい。