有没有办法从 Linux 日志文件中排除特定条目?

DWi*_*ams 4 linux ubuntu log-files logging cron

具体来说,我试图在 Ubuntu Server (hardy LTS) 下保持一个干净的 cron.log。除了预先安装的 4 或 5 个 cron 作业之外,我还添加了 4 个自己的作业(使用 cron.d 方法)。现在,自动安装的作业之一是每小时运行一次的 PHP 会话过期脚本。

它需要执行,当然,但坦率地说,我不在乎它何时执行。它每小时运行一次并输出类似于下面的条目。

Oct 18 02:17:01 cobalt /USR/SBIN/CRON[18160]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Oct 18 02:39:01 cobalt /USR/SBIN/CRON[18233]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm)
Run Code Online (Sandbox Code Playgroud)

由于它每小时执行一次并产生一个相对较长的日志条目,它占我的 cron.log 的 90%。如果我翻阅日志文件以确保我的日常备份脚本等得到执行,它们会被所有这些条目吞没。

有什么办法可以让我从记录中排除这个进程?

我意识到我可以使用 grep 或日志阅读器程序进行搜索,但这并不是我真正想要的。我只想能够“cat cron.log | less”并通过我不关心的进程的日志垃圾邮件(我也意识到这个进程在大多数网络服务器上很重要,但这不是'主要不是网络服务器,甚至不允许来自公司外部的连接)。

jos*_*chi 6

任何最近的 syslog-daemon(如 syslog-ng 或 rsyslog)都支持过滤功能。只需编辑rsyslog.confsyslog-ng-conf忽略/USR/SBIN/CRON包含字符串的进程名称条目CMD

更好的是:您只需将这些消息记录到另一个文件中(例如cron-detail.log)。

文档链接: