卷曲或恢复下载时出现网络错误和会话结束



我想知道是否有办法转储HTTP流,无论服务器端发生什么。如果我使用 curl --retry 999wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 ,则在出现网络错误时会恢复连接和下载,但如果会话被服务器终止,则不会重试。连接正在结束,仅此而已。即使在 FIN 上,我也需要永久重试。

wget 或 curl 是否有一些特殊参数来存档?有没有一个不是 wget 或 curl 的工具可以存档这个?单个命令将不胜感激,因为输出正在通过管道传输。

为了避免本地故障左右,你可以把它放到 while 循环、bash 脚本中

while [ 1 ]; do
wget -t 0 --timeout=15 --waitretry=1 --read-timeout=20 --retry-connrefused --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful
sleep 1s;
done;

您也可以尝试其他解决方案

FILENAME=$1
DOWNURL=$2
wget -O "`echo $FILENAME`" "`echo $DOWNURL`"
FILESIZE=$(stat -c%s "$FILENAME")
while [ $FILESIZE < 1000 ]; do
    sleep 3
    wget -O "`echo $FILENAME`" "`echo $DOWNURL`"
    FILESIZE=$(stat -c%s "$FILENAME")
done

您可以玩限制 1000。如果文件较小,则 while 循环将重试。

最新更新