2012-02-09 5 views
6

次のコマンドを使用して、フラマの例外ログをダウンロードしようとしています。Curl:リクエスト間のスリープ/ディレイ

curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv" 

正常に動作し、オフセット(10,20,30など)に基づいてCSVファイルをダウンロードします。私は各要求の間に遅延を挿入したいと思います。 CURLでそれを行うことは可能ですか? bashシェル(Linux)の使用

答えて

4

while : 
do 
    curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv" 
    sleep 5m 
done 

それは無限ループであり、遅延がsleepコマンドによって与えられます。

編集。 Windowsマシンでは、あなたの代わりにこのトリックを行うことができます。

for /L %i in (0,0,0) do (
    curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv" 
    ping -n XX 127.0.0.1>NUL 
) 

sleepコマンドは、Windows上で使用できません。しかし、pingを使って "エミュレート"することができます。上記のXXを遅延させたい秒数で置き換えてください。

+0

私は窓を使用しています。私はどのように窓でそれを行うことができますか? 。上記のコードを見ても、同じコマンドを何度も繰り返し実行するようです。私はオフセット= [0-100:10]を持っているので、コマンド自体は繰り返されます。遅れたり、私の命令を寝かせたりしたいと思います。出来ますか? – rfsk2010

+0

オフセット(10,20,30、...、100)を反復するには、上記の '(0,0,0)'を '(0,100,10)'に置き換えます。これは、0から100の範囲で開始し、10ずつ増加することを意味します。しかし、それはもはや無限ループではありません。 –

+0

ウェブアドレスに変数%iを使用します。だからそれは '...&offset =%i'となるでしょう –

2

wgetのは、遅延オプションがあり

wget --wait=seconds 

ともランダム遅延オプション

wget --random-wait 
0

bashで、これは範囲0-60のランダムな秒数を一時停止します。

for d in {0..100..10} 
do 
    i=`printf "%03d" $d` 
    curl --cookie ./flurry.jar -k -L 'https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset='$d --output 'exception'$i'.csv' 
    sleep $(($RANDOM*60/32767)) 
done