如何抑制 cron 守护进程向电子邮件发送的特定警告?

如何抑制 cron 守护进程向电子邮件发送的特定警告?

示范(或直接真正的问题部分)

我有一个 lynis 脚本,用于扫描我的服务器。该脚本对于演示并不重要,但无论如何,这是该脚本:https://gitlab.com/sofibox/maxicron/-/blob/master/usr/local/maxicron/lynis/maxinis

该脚本运行完美,通过终端手动运行时不会输出任何错误:

./maxinis manual --cronjob

我还将收到一封有关扫描的电子邮件

但是,当我在特定时间通过 cronjob 运行此脚本时,如下所示:

06 21 * * *     root    /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null

它也运行完美,发送电子邮件,但我收到了一封额外的电子邮件计划任务守护进程有 3 个警告输出,如下所示:

Cron 守护进程电子邮件

真正的问题在这里:

我的问题是,基于3从上图中的警告消息,我收到了 cron 守护程序电子邮件警告。我该如何压制第二行警告并保留 Cron 守护程序发送的其余输出?

输出的第二行是:

# Warning: iptables-legacy tables present, use iptables-legacy to see them

我尝试grep -v在 crontab 中使用这种方法,但似乎不起作用:

06 21 * * *     root    /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null | grep -v '# Warning: iptables-legacy tables present, use iptables-legacy to see them' 

答案1

grep不起作用的原因是消息将要发送stderr,而不是发送stdout,所以grep永远不会看到它们。这就是为什么即使在发送stdout至后您仍会收到一封电子邮件/dev/null。你可以stderr这样过滤:

somecommand > /dev/null 2>( grep -v 'unwanted error' 1>&2 )

相关内容