curl偶尔会返回错误(6)

时间:2014-07-27 07:58:10

标签: bash curl ftp

我有一个从ftp服务器下载一些文件的bash脚本。问题是有时curl会随机返回错误6(无法解析主机)!我可以通过网络浏览器打开ftp,没有任何问题。我还注意到,第一次下载时出现的错误最多。任何想法?

此外,我想知道如何在发生这些错误时使curl重试下载

我使用的代码:

curl -m 60 --retry 10 --retry-delay 10 --ftp-method multicwd -C - ftp://some_address/some_file --output ./some_file

注意:我还尝试了没有--ftp-method multicwd的代码

操作系统:CentOS 6.5 64位

2 个答案:

答案 0 :(得分:1)

while [ "$ret" != "0" ]; do curl [your options]; ret=$?; sleep 5; done

答案 1 :(得分:1)

假设这些是服务器和/或DNS的过渡问题,循环可能会有所帮助。对于很少使用的(?)until循环来说,这是一个特别好的情况:

until curl [your options]; do sleep 5; done

此外,如果使用curl不是强制性的,那么wget可能更适合“不可靠”的网络连接。来自 man

  

GNU Wget是一个免费的实用程序,用于非交互式下载文件   网络。它支持HTTP,HTTPS和FTP协议,以及   通过HTTP代理检索。

     

[...]

     

Wget设计用于缓慢或不稳定的网络连接的稳健性;如果由于下载失败   一个网络问题,它将继续重试,直到检索到整个文件。如果服务器支持   重新启动,它将指示服务器从中断处继续下载。