在我的Ubuntu-Desktop和debian服务器上,我有一个需要每分钟执行一次的脚本(该脚本调用我的在线在线Browsergame的分钟记录)。
问题在于,在debian派生产品上,cron /var/log/syslog
每次执行时都会记录日志。我最终看到一遍又一遍地重复执行它的消息/var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
我知道,为了抑制程序的输出,我可以将其重定向到/dev/null
,例如,隐藏程序中的所有错误和警告消息,可以在crontab中创建这样的一行
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
但是我想运行一个cronjob并确保所有生成的输出或错误都通过管道传递给NULL,因此它不会在syslog中生成任何消息,也不会生成任何电子邮件
编辑:
有一种解决方案可以通过更改更改将cron日志重定向到此处建议的单独日志中/etc/syslog.conf
但是缺点是,然后所有cronjobs的ALL输出都将被重定向。
我可以以某种方式仅将单个cronjob重定向到单独的日志文件吗?最好是在cron.hourly
文件本身内部可配置。
MAILTO=""
因为crontab的第一行将阻止发送任何电子邮件。另外,如果要禁止所有输出,请在命令行上使用完整的trifecta。通过该字符串重定向所有3种: >/dev/null 2>&1
-当然,您可以让脚本将定期写入单独的日志中。
MAILTO=""
cron文件的开头。这将禁止所有电子邮件。而且我从未听说过将作业输出发送到syslog的cron守护程序(但我想可能)。