2012-02-09 7 views
6

Sto cercando di scaricare i registri delle eccezioni flurry utilizzando il seguente comando.Arricciatura: sospensione/ritardo tra le richieste

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" 

Funziona bene e scarica i file CSV in base alla offset (10,20,30, ecc). Vorrei inserire un ritardo tra ogni richiesta. È possibile farlo in CURL?

risposta

4

Uso shell bash (Linux):

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 

È un ciclo infinito, e il ritardo è dato dal comando sleep.

Modifica. Sulla macchina Windows, si può fare questo trucco, invece:

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 
) 

Il comando sleep non è disponibile su Windows. Ma puoi usare ping per "emularlo". Basta sostituire la XX in alto con il numero di secondi che si desidera ritardare.

+0

Sto usando Windows come posso farlo in Windows? . anche guardando il codice di cui sopra, sembra che eseguirà lo stesso comando più e più volte che non è quello che voglio. Il comando stesso verrà iterato come ho offset = [0-100: 10]. Vorrei menzionare un ritardo o dormire il comando ,. È possibile? – rfsk2010

+0

Per ripetere l'offset (10, 20, 30, ..., 100), sostituire '(0,0,0)' sopra con '(0,100,10)'. Significa iniziare da 0 a 100, incrementare di 10. Ma non è più un ciclo infinito. –

+0

E utilizzare la variabile% i per l'indirizzo web. Quindi sarà '... & offset =% i' –

2

wget dispone di opzioni di ritardo

wget --wait=seconds 

e anche ritardo casuale opzione

wget --random-wait 
0

in bash, questo sarà mettere in pausa un numero casuale di secondi nel range 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 
Problemi correlati