.을(를) 사용하여 일부 파일을 다운로드하려고 하는데 wget
한 시간 후에 다운로드 속도가 떨어집니다. 다운로드를 취소하고 다시 시작하면 다운로드 속도가 1시간씩 빨라집니다.
wget
속도가 해당 임계값 아래로 떨어지면 다시 시작되거나 다시 시작되도록 다운로드 속도에 대한 하한을 설정할 수 있습니까 wget
?
답변1
대신 근본적인 문제를 해결해야 합니다. 따라서 연결 속도가 느려지는 이유를 분석하고 원인을 제거하십시오.
절전 기능인 경우 거의 확실하게 해당 기능을 끄거나 네트워크에 영향을 주지 않는 방식으로 구성할 수 있습니다.
답변2
잠시 후 다운로드 중인 웹사이트나 ISP가 대역폭을 제한할 수 있습니다. 전송 속도를 제한하는 데 도움이 될 수 있습니다 --limit-rate
.
wget에게 종료를 지시하는 몇 가지 옵션이 있습니다. --tries
( )를 사용하여 -t
재시도 횟수를 제어합니다. 재시도 속도를 조금 조정하면 더 나은 --wait
결과를 얻을 수 있습니다 --wait-random
. 서버가 이를 지원하는 경우 Wget은 중지된 위치에서 자동으로 재개됩니다. 전송 속도가 매우 낮은 숫자로 제한되고 --read-timeout
매우 작은 매개변수(예: 0.1
10분의 1초)를 사용하여 속도가 0.1초마다 1패킷 아래로 떨어지면 연결이 다시 시작됩니다. 네트워크 장애로 인해 이 시간 동안 패킷이 수신되지 않으면 연결도 다시 시작됩니다.
제한되기까지 남은 시간을 미리 알고 있는 경우 wget 프로세스를 종료하고 -c
다운로드를 재개하는 옵션과 함께 다시 시작하는 셸 조각을 작성하세요. 경고, 테스트되지 않았습니다. 셸에서 백그라운드 하위 프로세스를 사용하는 것은 약간 이상하므로 심각한 작업에는 Perl 또는 Python을 사용하는 것이 좋습니다.
while wget -q -c http://example.com/wibble & wget_pid=$!
{ sleep 300; kill $wget_pid; } & kill_pid=$!
wait $wget_pid
kill $kill_pid
wait
do sleep 10; done
답변3
read-timeout
내 버전의 wget은 아래와 같이 다운로드 시간 초과 없이 재시도를 지원합니다 .
$ wget -c --read-timeout=5 http://thefile.com/getme.txt
36% [+++++++++++++++++++++++++++++++++++++++++++======> ] 280,061,984 --.-K/s in 6m 16s
2012-05-09 16:04:23 (105 KB/s) - Read error at byte 280061984/761323675 (Operation timed out). Retrying.
더 낮은 제한을 설정하는 방법은 없는 것 같지만 진행 중인 다운로드에 많은 도움이 됩니다. 다른 사람이 이 질문을 검색하면 좋겠습니다.