最近,sendmail 停止在我的 Solaris 10 x86 机器上接收要传送的消息。我正在尝试诊断问题,但 syslog 似乎也无法正常工作。我的 /etc/syslog.conf:
#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */
#
# Copyright (c) 1991-1998 by Sun Microsystems, Inc.
# All rights reserved.
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (`') names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.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)
auth.info /var/log/authlog
mail.info /var/log/maillog
#
# 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'
local7.debug /var/log/mimedefang
user.emerg *
)
/var/log/authlog 可以工作。/var/log/mimedefang 和 /var/adm/messages 也可以。但是,/var/log/syslog 是空的,/var/log/syslog.0 中的最后一行是一个多月前的内容。/var/log/maillog 也是空的。我使用 svcadm 多次重新启动了 system-log 和 sendmail。我的 syslog.conf 是不是出了什么问题?
答案1
正如 @MadHatter 上面所述,syslog.conf 没有在任何地方提及 /var/log/syslog。因此,不会将任何日志写入 /var/log/syslog。
如果我没记错的话,大多数 Solaris 系统在 syslog.conf 中都有一行如下的内容:
mail.info ifdef(`LOGHOST', /var/log/syslog, @loghost)
或者
mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost)
或者
mail.info /var/log/syslog
答案2
我的 /etc/syslog.conf (andLinux)包含
*.*;auth,authpriv.none -/var/log/syslog
您发布的文件没有提到 /var/log/syslog。
答案3
对我来说,解决方案是:在某个时候,旧的内核记录器守护进程升级为 rsyslogd。发生这种情况时,“messagebus”拥有的日志仍归“messagebus”所有,但“syslog”无法写入。
将这些日志的所有权更改为“syslog”并重新启动 syslogd 就足以解决问题。