使rsyslog忽略缺少的日志文件

时间:2014-03-06 10:42:51

标签: logging rsyslog

我希望我的rsyslog能够将确切的日志打印到两个不同的文件中。一个是/ var / log / messages这是默认RHEL规则:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

第二个是存储在Veritas Cluster Storage集群的两个节点之间的共享安装点上的$ hostname_messages.log。这可以通过以下方式完成:

$template PerCMDNode,"/foo/bar/system/%HOSTNAME%_messages.log"
*.info;mail.none;authpriv.none;cron.none                -?PerCMDNode

一切正常,直到我停止群集服务,并且共享挂载点变得不可用于rsyslog。在这种情况下,rsyslog退出信号15,并且不仅停止记录该共享日志文件(这很明显),而且还停止记录所有日志文件。

我的问题是,如果我可以让rsyslog忽略丢失的日志文件,并在文件重新联机时继续记录?

1 个答案:

答案 0 :(得分:0)

当共享日志文件被暂停时,您可以简单地重定向" http://www.rsyslog.com/action-execonlywhenpreviousissuspended-preciseness/

$template PerCMDNode,"/foo/bar/system/%HOSTNAME%_messages.log" *.info;mail.none;authpriv.none;cron.none -?PerCMDNode $ActionExecOnlyWhenPreviousIsSuspended on & /var/log/localbuffer # Might also ask rsyslog to discard here. $ActionExecOnlyWhenPreviousIsSuspended off