Linux応用コース1/11
ファイルの転送
ftpコマンドとは
FTPサーバーとのFTP通信には、GUIであれば通常FTPクライアントソフトを使用して、ファイルやデータのやり取りをしますが、Linuxではftpコマンドを使用し、FTPサーバーに接続してファイルをアップロードしたり、アクセス権を変更したり、FTPサーバー内を操作出来るようになります。
基本的な使い方
ftp FTPサーバーのアドレス
よく利用するオプション
オプション | 説明 |
---|---|
-v | FTPサーバーの処理後のメッセージを表示する |
-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 | サーバーに接続する |
close | FTPサーバーから切断する |
quit | FTPモードを終了する |
ls | FTPサーバー内のファイルやディレクトリを一覧表示する |
asc | アスキーモードでファイルを扱う |
bin | バイナリモードでファイルを扱う |
put | Linux内のファイルをアップロードする |
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環境をご利用下さい。