curlコマンドでFTP:ファイルの一覧表示、アップロード、ダウンロード
目次
スポンサードリンク
curlコマンドはサーバーとの間でデータ転送するためのツールです。用途の似たコマンドに wgetコマンドがありますが、wgetコマンドと比較してcurlコマンドは対応するプロトコルが豊富な点が特徴です。
curlコマンドでは FTP もサポートしており、サーバーにあるファイルの一覧表示や、ファイルのアップロード、ダウンロードができます。
サーバーのファイルを一覧表示する方法
curlコマンドに -u オプションで、コロンで区切ったログイン用のユーザーIDとパスワードを指定します。その後、ftp:// に続けてサーバーのホスト名やディレクトリを指定します。 下記はサンプルです。ホスト名などは仮のものに置き換えてます。
[root@hostname ~]# curl -u USER_ID:PASSWORD ftp://example.jp/
drwx---r-x 11 USER_ID users 512 Oct 30 2023 .
drwxr-xr-x 275 root wheel 5632 May 10 21:01 ..
-rw-r--r-- 1 USER_ID users 773 Nov 29 2018 .cshrc
-rw-r--r-- 1 USER_ID users 762 Nov 29 2018 .profile
drwx------ 2 USER_ID users 512 Nov 18 2009 .ssh
drwx------ 5 USER_ID users 512 Nov 1 2023 MailBox
drwx------ 2 USER_ID users 512 Nov 18 2009 db
drwxr-xr-x 3 USER_ID users 3072 May 11 00:06 log
drwxr-xr-x 6 USER_ID users 512 Apr 22 23:34 www
サーバーのファイルをダウンロードする方法
-O オプションを指定し、ftp://に続けてファイルのパスを指定することで、ファイルをダウンロードすることができます。 また、-Oオプションを付けないで実行すると、ファイルの内容を標準出力に出力することができます。
[root@hostname ~]# curl -u USER_ID:PASSWORD -O ftp://example.jp/www/blog/index.xml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 251k 100 251k 0 0 1367k 0 --:--:-- --:--:-- --:--:-- 1375k
サーバーにファイルをアップロードする方法
-T オプションに続けてアップロードしたいファイルを指定します。デフォルトではバイナリーモードでの転送になります。asciiモードで転送したいときは –use-asciiオプションを指定します。また、-aオプションを指定するとファイルを上書きではなく追記します。
[root@hostname ~]# curl -T index.xml -u USER_ID:PASSWORD ftp://example.jp/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 251k 0 0 100 251k 0 1832k --:--:-- --:--:-- --:--:-- 1823k
複数のファイルをアップロードしたい場合は、以下のようにカンマで区切り複数ファイルを指定します。
[root@hostname ~]# curl -T "{index.xml,index.html}" -u USER_ID:PASSWORD ftp://example.jp/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 251k 0 0 100 251k 0 1752k --:--:-- --:--:-- --:--:-- 1760k
100 20430 0 0 100 20430 0 278k --:--:-- --:--:-- --:--:-- 278k
複数ファイルをアップロードする際の書式は以下の書式が使えます。
curl -T "{file1,file2}" http://www.uploadtothissite.com
or even
curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/
Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)