--, -K/s
상황 을 피하기 위해 사용할 수 있습니다 --read-timeout=seconds
. 몇 초 후에 연결 시간이 초과됩니다.
그 이상으로 넘어 가야 할 경우이 설정을 사용할 수 있습니다
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
연결 거부 및 유사한 치명적 오류 ( --retry-connrefused
)를 재 시도하고 다음 재시도 (1) 전에 1 --waitretry
초 동안 기다립니다. 데이터가 수신되지 않은 경우 최대 20 초 동안 기다렸다가 다시 시도합니다 ( --read-timeout
), 최대 15 초 기다립니다 초기 연결 시간이 초과되기 전에 ( --timeout
) 마지막으로 무한 횟수 ( -t 0
)를 다시 시도합니다 .
while
로컬 네트워크 장애 및 이와 유사한 것을 피하기 위해 이것을 루프에 넣을 수도 있습니다 . 이 경우 --continue
중단 한 부분에서 다운로드를 계속하려면 추가해야합니다 . 다음은 Bash에서 잘 작동합니다.
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
sleep 1s;
done;
보너스 팁으로 --no-dns-cache
호스트가 DNS를 통해 여러 서버간에 요청의 균형을 맞추는 경우 에도 사용할 수 있습니다 .
면책 조항 : 연결이 불안정하고 모니터하지 않은 상태로 두는 것이 현명하지 않은 경우 호스트를 스팸으로 만들기 때문에 이것을 사용하지 않는 것이 좋습니다. 그러나 이것은 실제로 무언가를 다운로드해야하고 연결이 제대로 작동하지 않는 경우에 원하는 것입니다.
--read-timeout=900
. 15 분만 기다리면 wget이 다운로드를 다시 시작합니다.