我们有一个用例,需要在轮换日志文件时对其进行压缩。
更具体地说,我们有基于大小轮换的auditd审计跟踪......
因此,当日志文件的大小达到 100M 时,它将旋转并添加以下内容/var/log/messages
:
审核守护进程使用 keep 选项轮换日志文件
我希望,当记录这一行时,执行一个脚本来压缩audit.log.1
已创建的文件。我认为omprog
这是最好的方法,除非有更好的方法。
关于 omprog 的文档不是很清楚..我希望使用 rsyslog 或其他类型的守护程序来监视文件系统并在文件存在时触发压缩脚本吗?
答案1
要匹配消息并运行程序,请创建一个文件,其/etc/rsyslog.d/99-myaudit.conf
内容如下:
module(load="omprog")
if $msg startswith ' Audit daemon rotating log files' then action(type="omprog" binary="/bin/myprog")
并重新启动rsyslogd
。我在消息字符串的开头添加了一个空格,因为它可能会在那里。如果您愿意,可以使用$msg contains 'Audit daemon rotating'
更宽松的搭配。
/bin/myprog
当存在消息匹配时,可执行程序或脚本将运行。它将在标准输入上提供匹配的消息。如果程序退出,它将在下次消息匹配时再次重新启动。
您可以添加文件名以在测试时收集程序的输出,例如action(type="omprog" binary="/bin/myprog" output="/tmp/mylog")
.看奥普罗格。