我在凌晨1点开始做一个cronjob。使用curl检查Web上的某些文件的更新,将所需的更新保存到文本文件,然后读取文本文件并从中下载。然后我将curl响应输出到日志文件,这样我就可以看到早上发生了什么。在cron调用我的脚本后,似乎我的连接没有启动大约4秒。即我的日志的前几行是:
1:00:01 A.M. curl: (6) cannot resolve host 'somehost.com/dir/file.zip'
# which is the error I see when I have no internet connection
并重复几次,直到文件开始下载后1点后约4秒,我看到正常的卷曲输出。不幸的是,这意味着我总是会错过我的更新列表顶部永远不会下载的7-8个文件。
我能想到的唯一原因是,即使我允许我的网络适配器唤醒我的电脑,但是在我的电脑唤醒后连接到互联网需要大约4秒钟。在同样的4秒内,我的脚本正在运行我的文本文件,调用curl,并且无法下载任何内容。
curl中有什么可以解决这个问题吗?
我知道我可以编写唤醒脚本或通过脚本将错误URL传回以后再下载,但如果网站关闭或者我实际上没有互联网服务,可能会出现无限循环如果我可以使用curl继续尝试唤醒我的网络,那就太好了。
答案 0 :(得分:0)
从网络角度来看,这可能是由许多事情造成的。
我会让脚本测试curl的响应,以确保在向下移动更新列表之前连接有效。