如何阻止 Cron 发送有关错误的消息

Som*_*ody 2 cron

我收到了来自 cron 的奇怪邮件:

Return-Path: <root@domain.com>
Delivered-To: root@domain.com
Received: by domain.com (Postfix, from userid 0)
    id 6F944264D0; Mon, 10 Jan 2011 10:35:01 +0000 (UTC)
From: root@domain.com (Cron Daemon)
To: root@domain.com
Subject: Cron <root@domain> lynx -dump http://www.domain.com/cron/realqueue
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20110110103501.6F944264D0@domain.com>
Date: Mon, 10 Jan 2011 10:35:01 +0000 (UTC)

/bin/sh: lynx: not found
Run Code Online (Sandbox Code Playgroud)

我在 crontab 文件中有这个 cron 设置:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


*/5 * * * * lynx -dump http://www.domain.com/cron/realqueue

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Run Code Online (Sandbox Code Playgroud)

Lynx 也安装在我的 Ubuntu 上。

Ofc 代替 domain.com 是我的域,刚被替换。

谢谢 ;)

Scr*_*ner 10

您应该检查以确保 lynx 二进制文件位于 PATH 变量中指定的位置之一,或者在 cron 行中使用二进制文件的完整路径。为了抑制错误,您需要将 STDERR 和 STDOUT 重定向到 /dev/null,如下所示:

*/5 * * * * lynx -dump http://www.domain.com/cron/realqueue >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

第一次重定向将 STDOUT 发送到 /dev/null,第二次重定向发送带有 STDOUT 的 STDERR(即发送到 /dev/null)。