我在使用 syslog local7 时遇到了一个奇怪的问题,我的 syslog 配置了要写入的 syslog
local7.info /var/log/syslog_info
多年来它一直运行良好,但最近几天,一个设备的系统日志消息写入控制台,我不知道为什么这个设备的系统日志在控制台上,但其他数百个设备的系统日志仍然写入文件。我的问题是如何阻止这种情况?我需要来自该设备的系统日志,所以我不想停止它,但同时我也不想将其写入我的控制台。我的操作系统是 64 位 Solaris。谢谢,
这是我的 syslog.conf
#
*.err;kern.notice;auth.notice /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef(`LOGHOST', ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert `root, operator'
user.emerg *
)
local7.info /var/log/syslog_info
答案1
由于此行,您的syslog
配置将会把级别及以上级别的任何内容记录到系统控制台:err
*.err;kern.notice;auth.notice /dev/sysmsg
这会将高于err
及以上的所有内容、kern
高于及以上的消息notice
以及auth
高于及以上的消息记录notice
到系统控制台。如果您的设备正在记录这些级别的消息,这将解释控制台消息。
您可以local7
使用none
限定符来抑制来自该设施的消息,如下所示:
*.err;kern.notice;auth.notice;local7.none /dev/sysmsg
尝试一下,看看控制台消息是否停止出现。