- ベストアンサー
cronのシェルスクリプトで特定のファイルを時間差で実行したい
現在、下記内容を記述したシェルスクリプトを使っています。 #!/bin/sh cd /virtual/web/ wget test1.php -O result wget test2.php -O result wget test3.php -O result exit test1.php、test2.php、test3.phpを10分の間隔をあけて実行したいのですが、cron側で設定する以外にシェルスクリプト側で設定することは可能でしょうか? あと基本的なことなのですが、test.phpを実行したい(叩きたい)だけの場合、wgetではなく他のコマンドではできないでしょうか?このような場合はどんなコマンドが適切なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
sleep 600 で10分間 間隔があきます。 また、wget でなくてもコマンドライン版の php が 使えれば php -f test1.php > result でよいです。
その他の回答 (1)
- freetaka
- ベストアンサー率53% (106/197)
「wget」に「-o」オプションを付けた場合は 指定したファイル名に取得内容を書き込むのをご存知かと思いますが t-okuraさんの回答のように「>」を使用した場合 リダイレクションといいますが出力が可能です php -f test1.php > result の場合 php -f test1.php の結果を result へ出力という意味になります 「>>」と2重にすると追記となります 「<」というふうに逆を向けると入力とすることができます ですのでresultはオプションではなく書き込む時のファイル名となります 「wget」に「-o」オプションを付けた場合は 指定したファイル名に取得内容を書き込みますよね? wget test1.php -O result feed12さんが最初「result」というファイルに 取得結果を出力するように指定していたので php -f test1.php > result としたのだと思いますが ファイルができあがらないようにするのであれば php -f test1.php だけでOKです
お礼
詳細な説明ありがとうございました。 とても分かりやすくて勉強になりました。 どうもありがとうございました。
補足
お陰さまで思い通りに動いてくれました。 ありがとうございました。 ちなみに result という(オプション?)はどんな意味なのでしょうか。 シェルスクリプトと同じ階層にresultというファイルが出来ていたのでダウンロードして開いてみたのですが白紙でした。 何かエラーがあったときに記入されるのでしょうか?