Linuxコマンド辞典 curlコマンド(ネットワーク)

サーバにデータを送信/サーバからデータをダウンロードする「curl」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

概要・使用方法

書式

$ curl [オプション] [URL・・・] 

サーバにデータを転送したり、サーバからデータを転送します。FTP/FTPS/HTTP/HTTPS/IMAPS/LDAP/POP3/POPS3/SFTP/SMTPS/TELNET/TFTPなどのプロトコルをサポートしています。

オプション

-#
–progress-bar
転送メータの代わりにプログレスバーを表示する
-0
–http1.0
HTTP1.1の代わりにHTTP1.0を利用する(デフォルトはHTTP1.1)
-1
–tlsv1
TLS Version1が使われる
-2
–tlsv2
SSL version 2が使われる(ただし脆弱性が報告されているプロトコルのため利用は非推奨)
-3
–tlsv3
SSL version 3が使われる(ただし脆弱性が報告されているプロトコルのため利用は非推奨)
-4
–tlsv4
Ipv4で接続する
-6
–tlsv6
Ipv6で接続する
-A 文字列
–user-agent 文字列
指定した文字列をHTTPサーバへのアクセスのユーザエージェント(ブラウザ)として設定する
-b NAME=”VALUE[;・・・]”
–cookie “NAME=VALUE[:・・・]”
cookieとしてHTTPサーバに転送するデータを指定する
–basicHTTPベーシック認証を利用する
–digestHTTPダイジェスト認証を利用する
-u ユーザ名
–user ユーザ名
ユーザ名を指定する
-d データ
–data データ
HTTP POSTメソッドで転送するデータを指定する
–sslSSL/TLS接続を試みる
-E 証明書[:パスワード]
–cert 証明書[:パスワード]
PEMフォーマットのクライアント証明書を指定する。必要であればパスワードを指定する。
–cert-type タイプ証明書の形式を指定する(デフォルトはPEM形式)
–cacert CA証明書CA証明書を指定する
-k
–insecure
自己署名証明書を利用しているサーバにそれを承知で接続する
–key 鍵SSHやSSLの秘密鍵を指定する
–key-type タイプ鍵の形式を指定する(デフォルトはPEM形式)
–pubkey 鍵公開鍵を指定する
–pass パスフレーズ秘密鍵のパスフレーズを指定する
–ftp-pasvFTP PASVモードで接続する
–limit-rate 速度転送速度上限を設定する。bytes/秒の単位でK、K、m、M、g、Gを指定する
–mail-from アドレスSMTPサーバに送信元アドレスを指定する
–mail-rcpt アドレスSMTPサーバに宛先アドレスを指定する
-T ファイル名
–upload-file ファイル名
リモートURLに転送するファイルを指定する
-o ファイル名
–output ファイル名
標準出力の代わりに指定されたファイルに出力する
-Oリモートホストから取得したファイルをローカルに保存する
–trace ファイル名入ってくるデータ、出るデータすべてを指定したファイルにトレースする
–retry 数値再接続数を指定する
-L,
–location
リダイレクトがあればリダイレクト先の情報を取得する(短縮URL使用時など)
-s,
–silent
進捗情報やエラーメッセージを表示しないようにする

HTTPサーバからファイルをダウンロードする

$ curl -0 URL

実行結果

[root@centos ~]# curl -0 https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.1-x86_64-minimal.iso

指定したURLの情報をindex.htmlとしてダウンロードする

$ curl -o index.html URL

実行結果

[root@centos ~]# curl -o index.html https://www.yahoo.co.jp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 38018    0 38018    0     0   394k      0 --:--:-- --:--:-- --:--:--  394k
[root@centos ~]# 

連番のファイルをダウンロードする

$ curl -o URL/ファイルパス[番号-番号]

実行結果

[root@centos ~]# curl -o ftp://example.com/a[001-100].dat

プロキシサーバーを経由してアクセスする

$ curl -0 -x プロキシサーバIPアドレス:ポート番号 --proxy-user ユーザID:パスワード URL

実行結果

[root@centos ~]# curl -0 -x 192.168.0.10:8080 --proxy-user admin:p@ssW0rd https://wwww.yahoo.co.jp
[root@centos ~]# curl -o ftp://example.com/a[001-100].dat

メールを–mail-rcptオプションに指定した宛先にSMTPサーバを経由して送信する

$ curl --mail-from admin@example.com --mail-rcpt rin@example.com --upload-file msg.txt smtp://example.com:25

実行結果

[root@centos ~]# curl --mail-from admin@example.com --mail-rcpt rin@example.com --upload-file msg.txt smtp://example.com:25

scpでファイルを転送する

$ curl --upload ファイル名 -u アカウント scp://URL:ポート番号/ファイルパス

実行結果

[root@centos ~]# curl --upload data.txt -u admin scp://example.com:22/tmp