【Linuxコマンド】curlコマンドのオプションと複数パラメータについてメモ(URLに複数のGETパラメーターがある場合)

色々と便利な curl コマンドですが、この間複数のパラメーターを持つ URL を指定していてハマったのでメモしておきます。

あと備忘録としてによく使うコマンドオプションもまとめておいて後で確認できる様にしとこう・・・φ(..)メモメモ

複数パラメーターの GET リクエストはエスケープが必要

この事がすっかり頭に無くて

curl http://hogehoge.com/hoge.php?list=3&view=4&req=true

こんな感じで cron に登録していたらパラメーターが足りないまま実行されてしまってコケていました^^

「&」の所はエスケープしないと正常に動かないと言うことで上の例の場合だと

curl http://hogehoge.com/hoge.php?list=3\&view=4\&req=true

この様にバックスラッシュ(\)を付けて登録することで正常に動くようになります。

参考:curl – Crontab cron job will not run with url with parameter – Stack Overflow

curl コマンドでよく使うオプション

オプションの詳しい情報はこちらのサイトを参照  cURL – How To Use (マニュアルページ日本語訳)

  • -d, –data PARAM
    POSTリクエストとしてフォームを送信する。パラメータPARAMは「”value=name”」の形式
  • -e, –referer
    URL リファラーをURLで指定する
  • -f, –fail
    サーバエラーが発生したら黙って終了する
  • -i, –include
    HTTPヘッダを出力に含める
  • -m, –max-time
    TIME 最大転送時間をTIME秒に制限する
  • -o FILE
    取得したデータを指定したファイルFILEに出力する
  • -s, –silent
    進捗状況やエラーを表示しない
  • -u USER[:PASS]
    認証に用いるユーザー名USER, パスワードPASSを指定する(基本認証など)
  • -v, –verbose
    処理状況の更なる詳細や説明を出力させます。
  • -x HOST[:PORT]
    プロキシサーバとしてホストHOSTおよびポートPORTを利用
  • -y, –speed-time
    TIME 転送速度が指定した速度をTIME秒の間下回ったらダウンロードを終了する。速度は-Yオプションで指定
  • -A, –user-agent
    AGENT ユーザーエージェントAGENTを指定
  • -H, –head
    HEADER HTTPヘッダにHEADERを追加もしくは変更する
  • -I, –head
    ヘッダ情報を取得する
  • -O, –remote-name
    取得したデータを標準出力ではなくファイルに出力する
  • -R, –remote-time
    ダウンロードしたファイルのタイムスタンプをサーバ上のタイムスタンプに合わせる
  • -L, –location
    要求したページにリダイレクトが掛かっていた場合に追従する。この時要求がPOSTメソッドだった場合GETに変えられてしまうので変えられたくない場合は–post301, –post302, –post303等のオプションを併用する。

とりとめのないまとめ

様々なパラメーターを指定することで色々な使いみちのあるcurlですが、色々出来過ぎるので中々全てのオプションを覚える・・・とはいきませんね・・・。

その都度調べてその都度新しい発見があるコマンドです^^

 

このシリーズの投稿