Bash
如果斷開連接,我可以重新啟動 curl 或 wget 嗎?
我想通過以下方式下載文件
curl
- 問題是我的連接速度很慢,並且以未知的方式在大約 180 KB 後停止接收數據。除非有更好的方法來修復它,否則如果文件未完全下載,我想編寫一個 shell 腳本,使其在斷開連接後執行。
這樣的腳本會/應該是什麼樣子?有沒有可能用shell腳本來實現?
curl --retry 10 ...
將重試十次以下載給定的 URL。
值得檢查
--retry-...
文件中的各種相關選項;鑑於您預計會出現錯誤,預設的退避算法可能並不理想,因此--retry-delay
會派上用場。正如Sato Katsura所提到的,超時選項也很有用(--...-timeout
和--max-time
)。如果失敗,因為
curl
遇到不認為是瞬態的錯誤,您可以使用循環:result=56 while [[ ${result} == 56 ]]; do curl -C - ... result=$? done
您可能希望在其中添加一個計數器以限制循環數。