「FTPコマンドで複数ファイルを一気にダウンロード・アップロードしたい」
ファイル転送の現場では、いまだに従来のFTPコマンドを使用する場面に直面することがあります。
この記事では、Linuxにおける
ftp コマンドの基本的な使い方を体系的に解説します。サーバーへの接続から、単一・複数ファイルのダウンロード(get/mget)とアップロード(put/mput)の手順まで、現場ですぐに使える内容をまとめました。1. FTPサーバーに接続・ログインする
まずは、対象のFTPサーバーに接続します。$ ftp 192.168.1.100
接続が成功すると、ユーザー名とパスワードの入力が求められます。
Name (192.168.1.100:root): user_name ←ユーザー名を入力 331 Please specify the password. Password: ←パスワードを入力(画面には表示されません) 230 Login successful. ftp>
ftp> に変わり、FTPコマンドの受付状態になります。・mget コマンドにワイルドカードを使うと複数ファイルを一括ダウンロードできる
・mget *.txt のように拡張子を指定してファイルを絞り込んでダウンロードできる
・prompt コマンドで確認プロンプトを OFF にすると自動で全ファイルをダウンロードできる
・lcd コマンドでローカルのダウンロード先ディレクトリをあらかじめ指定しておける
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
2. 接続後の基本操作(現在地の確認とファイル一覧)
ログイン直後はどのディレクトリにいるか把握するところから始めます。# リモート側の現在のディレクトリを確認する ftp> pwd 257 "/home/user_name" is the current directory. # リモート側のファイル・ディレクトリ一覧を表示する ftp> ls drwxr-xr-x 2 user user 4096 Feb 16 10:00 public_html -rw-r--r-- 1 user user 1234 Feb 16 09:00 sample.txt
3. ファイル転送前の必須準備(転送モードとディレクトリ移動)
ファイルを転送する前に、必ず確認・設定すべき項目が2つあります。転送モードを「バイナリモード」にする
画像ファイルや圧縮ファイル(.gz、.zipなど)を転送する際は、データが破損しないようにバイナリモード(bin)に切り替えます。現場では基本的に、常にバイナリモードにしておくのが安全です。ftp> bin 200 Switching to Binary mode.
ascii コマンドでASCIIモードにします。ディレクトリを移動する(cd と lcd)
リモート側(接続先のサーバー)と、ローカル側(自分の手元のPC)のそれぞれで、作業ディレクトリを移動します。# リモート側のディレクトリを移動する ftp> cd /var/www/html # ローカル側(手元)のディレクトリを移動する(Local CDの意味) ftp> lcd /home/user/downloads
4. ファイルをダウンロードする(get / mget)
1つのファイルをダウンロード(get)
単一のファイルを手元に持ってくるにはget コマンドを使用します。ftp> get sample.txt
# sample.txt をダウンロードし、backup.txt という名前で保存する ftp> get sample.txt backup.txt
複数ファイルを一気にダウンロード(mget)
複数のファイルや、ワイルドカード(*)を使ってまとめてダウンロードしたい場合はmget コマンドを使用します。ただし、そのまま
mget を実行すると、ファイル1つごとに「ダウンロードしますか? (y/n)」と確認されてしまい非常に手間です。事前に prompt コマンドを実行して、対話モードをOFFにしておくのが現場の鉄則です。# 対話確認モードをOFFにする ftp> prompt Interactive mode off. # 拡張子が .gz のファイルをすべてダウンロードする ftp> mget *.gz
5. ファイルをアップロードする(put / mput)
ダウンロードの逆で、自分の手元にあるファイルをサーバーへ送るコマンドです。1つのファイルをアップロード(put)
ftp> put update.tar.gz
# update.tar.gz を release.tar.gz という名前でアップロードする ftp> put update.tar.gz release.tar.gz
複数ファイルを一気にアップロード(mput)
こちらもダウンロード時と同様に、事前にprompt コマンドで確認をOFFにしてから実行します。# 対話確認モードをOFFにする ftp> prompt Interactive mode off. # 拡張子が .html のファイルをすべてアップロードする ftp> mput *.html
6. FTP接続を終了する
作業が完了したら、bye(または quit)コマンドでFTP接続を終了し、元のLinuxのプロンプトに戻ります。ftp> bye 221 Goodbye. $
よくあるエラーと対処法(接続できない・ログインできない・Connection refused・Login incorrect)
Connection refused(接続拒否)
ftp: connect: Connection refused
systemctl status vsftpd を実行し、FTPサービス自体が正常に起動しているかを最優先で確認してください。Login incorrect(ログイン失敗)
530 Login incorrect.
【重要】現代のセキュリティにおける注意点
従来のftp コマンドは、パスワードや転送データがすべて「平文(暗号化されていない状態)」でネットワーク上を流れてしまうという致命的なセキュリティリスクがあります。現代のLinux運用において、インターネット越しに
ftp コマンドを使用することは非推奨です。ファイル転送を行う際は、SSHの暗号化通信を利用する sftp や scp コマンドを使用するのが現在の業界標準となっています。FTPは閉じた安全なローカルネットワーク内でのみ使用するようにしましょう。sftp の基本的な使い方:
# sftpで接続(ftp と同様のコマンドでファイル操作が可能) $ sftp user_name@192.168.1.100 # scpで1ファイルをダウンロード $ scp user_name@192.168.1.100:/var/www/html/sample.txt ./
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| 現在のリモートディレクトリを確認 | pwd |
| リモートのファイル一覧を表示 | ls |
| リモートのディレクトリ移動 | cd ディレクトリ名 |
| ローカルのディレクトリ移動 | lcd ディレクトリ名 |
| 転送モードをバイナリにする | bin |
| 単一ファイルのダウンロード / アップロード | get ファイル名 / put ファイル名 |
| ファイル名を変えながら転送 | get 元ファイル名 保存ファイル名 / put 元ファイル名 アップロード先ファイル名 |
| 複数ファイルのダウンロード / アップロード | mget ファイル名 / mput ファイル名 |
| 複数ファイル操作時の確認を省略する | prompt |
| FTP接続を終了する | bye または quit |
FTPのmgetでワイルドカードを使った一括取得ができますか?
複数ファイルをまとめて転送する操作はバックアップやログ収集で頻繁に使います。prompt コマンドとの組み合わせも覚えておくと作業が一気に楽になります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:pingコマンドでサーバーの死活確認をする方法|回数指定・タイムアウト・トラブルシュートまで
- 前のページへ:MySQLのrootパスワードを忘れた場合の対処について
- この記事の属するカテゴリ:Linuxtipsへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます