我想知道无论服务器端发生什么,都有可能转储HTTP流。
如果我使用curl --retry 999
或wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
,则在网络错误的情况下会恢复连接和下载,但如果服务器终止会话,则不会重试。连接正在结束,就是这样。我甚至需要在FIN上进行永久性重试。
wget或curl有一些特殊的参数来存档吗? 是否有一个非wget或curl的工具可以存档?由于输出是通过管道传输的,因此可以欣赏单个命令。
答案 0 :(得分:0)
为避免本地故障,您可以将其放入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循环将再次尝试。