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サーバに転送するデータを指定する |
–basic | HTTPベーシック認証を利用する |
–digest | HTTPダイジェスト認証を利用する |
-u ユーザ名 –user ユーザ名 | ユーザ名を指定する |
-d データ –data データ | HTTP POSTメソッドで転送するデータを指定する |
–ssl | SSL/TLS接続を試みる |
-E 証明書[:パスワード] –cert 証明書[:パスワード] | PEMフォーマットのクライアント証明書を指定する。必要であればパスワードを指定する。 |
–cert-type タイプ | 証明書の形式を指定する(デフォルトはPEM形式) |
–cacert CA証明書 | CA証明書を指定する |
-k –insecure | 自己署名証明書を利用しているサーバにそれを承知で接続する |
–key 鍵 | SSHやSSLの秘密鍵を指定する |
–key-type タイプ | 鍵の形式を指定する(デフォルトはPEM形式) |
–pubkey 鍵 | 公開鍵を指定する |
–pass パスフレーズ | 秘密鍵のパスフレーズを指定する |
–ftp-pasv | FTP 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