如何将所有 cron 输出发送到系统日志而不是电子邮件

如何将所有 cron 输出发送到系统日志而不是电子邮件

我正在运行 cron 来-m off停止它发送电子邮件,然后该-s选项应该将所有输出发送到 syslog。

Cron 命令行是

crond -s -m off

我用于测试这个的 cron 任务是

* * * * * root /bin/echo hello

我看到的/var/log/cron

Jun 17 17:06:01 www08 CROND[4165]: h<FF>

基本上我得到的只是第一个字符h,然后<FF>

如果我将 cron 任务改为

* * * * * root /bin/echo world

然后我得到第一个字符w,然后<FF>

最终,我想要的是一种将 cronjobs 的所有输出记录到 syslog 的方法,以便我可以使用我们的日志警报系统来管理它们。

我不想修改所有的 cron 作业,因为有些作业是 rpm 包自动添加的,有些是由不同部门添加的。我正在寻找一种解决方案,可以一劳永逸地解决此问题,而不是不断地2>&1 | logger -t myscriptname在 100 台机器上将作业添加到每个 cron 作业的末尾

答案1

该修复现已向后移植,并可用于 CentOS 6 -https://pkgs.org/centos-6/centos-updates-x86_64/cronie-1.4.4-16.el6_8.2.x86_64.rpm.html。Tim,向 Red Hat 报告了这个问题,干得好!

答案2

找到了。centos 6 中的版本有一个错误,该错误在 4 年前已修复,但 Redhat 尚未对其进行反向移植。

https://www.fedorahosted.org/cronie/ticket/8

准备建立我自己的修订版。

答案3

您能用 -x 运行 crond 进行调试并查看是否有帮助吗?我尝试使用相同的 crond 选项运行相同的作业,对我来说效果很好。我使用的是 Centos7。您还尝试过使用“hello”吗?

相关内容