2016-04-26 59 views
0

我正在写一个脚本,从URL中获取一些重要的数据(通过cronjob),并发送一封电子邮件,如果失败,但它似乎并没有认识到它是否失败checking wget's return value [if]):发送电子邮件,如果wget失败

wget_output=$(wget --tries=1 --timeout=300 -r -N -nd -np --reject=html https://myurl/ -P ../data) 
if [ $? -ne 0 ] 
then 
    echo "send email here" >> ./test.txt 
else 
    echo "send email here" >> ./test2.txt 
fi 

它只是尝试1周时间(告知),然后放弃,但不承认,它可能成功,也没有。我假设我没有正确处理退出代码或其他东西。任何想法?谢谢

回答

2

你正在使用的wget版本是什么?版本1.15手册页的退出状态部分说:

在1.12之前的Wget版本中,Wget的退出状态往往是无益和不一致的。无论遇到什么问题,递归下载实际上都会返回0(成功),而非递归提取仅返回与最近尝试下载相对应的状态。

+0

有趣,虽然我很惊讶,'test2.txt'没有在这种情况下创建(创建既不文件) – timhc22

+0

当你在一个cron作业运行这个你应该使用这些文件的绝对路径:在工作目录可能不是你所期望的。并确保cron用户具有对该目标目录的写入权限。也许还值得去检查,如果任何机会shell选项'errexit'已被设置为活动。 – jil

+0

啊,非常感谢,明天我就去试试吧! – timhc22

相关问题