wget と cromtab を使えば、指定の日時にhttpで指定のURLにアクセスさせることができる。
ところで、こんなクエリ文字列付きのURLをcrontabに書いたとき、期待したとおりにパラメータが渡らない。
0 * * * * /usr/bin/wget http://www.softel.co.jp/index.php?parameter1=xxxxxx¶meter2=yyyyyy
parameter2のパラメーターが受け渡されない。
上の例では、原因は「&」。
&(バックグラウンドで実行)、&&(最初のコマンドが正常に実行された場合に、次のコマンドを実行)、;(最初のコマンド実行後、次のコマンドを実行)、||(最初のコマンドが正常に実行されなかった場合に、次のコマンドを実行)など、コマンドラインで特別な意味がある文字列があり、URLの&があることでひとつながりのコマンドと認識されないため。
下記のようにダブルコーテーションを使用すればうまくいく。
0 * * * * /usr/bin/wget "http://www.softel.co.jp/index.php?parameter1=xxxxxx¶meter2=yyyyyy"
基本的にwgetを実行する際は、URLをダブルコーテーションで囲めば問題なしです。
システム開発 ソフテルのブログ | こんなこともメモって!
匿名
だからできなかったんだ・・・ &が問題だったんですね。
問題が解決しました。ありがとう!