SOFTELメモ

</> 技術者募集

【linux】wgetでパラメータが正常に渡らないとき

wget と cromtab を使えば、指定の日時にhttpで指定のURLにアクセスさせることができる。

ところで、こんなクエリ文字列付きのURLをcrontabに書いたとき、期待したとおりにパラメータが渡らない。

0 * * * * /usr/bin/wget https://www.softel.co.jp/index.php?parameter1=xxxxxx&parameter2=yyyyyy

parameter2のパラメーターが受け渡されない。

上の例では、原因は「&」。

&(バックグラウンドで実行)、&&(最初のコマンドが正常に実行された場合に、次のコマンドを実行)、;(最初のコマンド実行後、次のコマンドを実行)、||(最初のコマンドが正常に実行されなかった場合に、次のコマンドを実行)など、コマンドラインで特別な意味がある文字列があり、URLの&があることでひとつながりのコマンドと認識されないため。

下記のようにダブルコーテーションを使用すればうまくいく。

0 * * * * /usr/bin/wget "https://www.softel.co.jp/index.php?parameter1=xxxxxx&parameter2=yyyyyy"

基本的にwgetを実行する際は、URLをダブルコーテーションで囲めば問題なしです。

関連するメモ

コメント(1)

匿名 2011年11月20日 05:17

だからできなかったんだ・・・ &が問題だったんですね。
問題が解決しました。ありがとう!