cron和wget:如何防止cron使用“孙子失败”消息来混乱syslog?

时间:2012-04-16 22:55:07

标签: cron wget syslog error-code

这是一个巨大的烦恼。 虽然在较早的wget版本中(甚至在手册页中都有说明),但整个错误代码功能从未可靠地运行,当前的wget版本似乎可以让它可靠地工作。

我有一份cron工作,可能被称为“穷人的RSS"”,为没有RSS选项的博客设置。我只是每隔15分钟轮询一次新网页。 (也就是说,当它当前处于random-blog.net/entry2147.html,并且我将2148存储在一个变量中并从中构建了我的crontab时,我将获得404的UNTIL条目214。 html页面存在。(通常情况下不到20小时)

但是...

每当cron返回"未找到"时,

wget往往变得有些过于冗长。 (404)(退出代码8):

(CRON) error grandchild #98765 failed with error code 8

嗯,我知道,不是吗?! 我知道该页面不存在,但我不需要cron告诉我每次运行! 我已经在网上搜索了答案,但是在保持syslog整洁的同时,没有任何想法可以抑制这些不必要的信息。

不幸的是,尽管"失败"无法告诉wget只输出代码0。 (好吧,除了黑客攻击它)

关于这个问题的任何想法,任何人?

1 个答案:

答案 0 :(得分:1)

您可以将这些内容包装在shell脚本中,忽略实际的退出代码并以0返回退出。它可能看起来像:

#!/bin/sh

cd /home/me/mycrondir

wget -flags tralalala tweedledom  2>&1 >>/home/me/mycrondir/myerrorlog.log

exit 0
#Eof

如果wget(或您需要的其他二进制文件)不在$ PATH(由cron提供)中,您可以在此脚本的顶部添加这些,如

PATH=/opt/bin:$PATH; export PATH