2012-02-09 3 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에서 할 수 있습니까?

답변

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

나는 창문을 어떻게 사용하고 있습니까? 창문에서 어떻게 할 수 있습니까? . 또한 위의 코드를 살펴보면, 내가 원하는 것을 반복해서 반복해서 실행하는 것처럼 보일 것입니다. 명령 자체는 offset = [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