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

前端之家收集整理的这篇文章主要介绍了有没有办法从Linux日志文件中排除特定条目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
具体来说,我正在尝试在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)

由于这会执行每一小时并产生相对较长的日志条目,因此它占我的cron.log的90%.如果我正在翻阅日志文件以确保我的每日备份脚本等被执行,那么它们会被所有这些条目吞噬.

我有什么办法可以排除这个过程被记录下来吗?

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

解决方法

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

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

文档链接

> rsyslog.conf: Filter Conditions
> syslog-ng: Filters

猜你在找的Linux相关文章