syslog.conf
该文件处于/etc目录下,用来控制syslogd如何处理某一facility|priority的log消息。譬如可以将某facility|priority的log消息存放到一指定的文件中,或发送到另外一台log服务器中,或通知当前登陆的用户。
在该配置文件中‘*’可以用来指定所有facility,但不能用来指定所有priority;同时注意facility|priority后不能带有空格,否则syslogd会忽略该配置。如下的配置都是不正确的:
user.* [TAB]/var/usr.log
user.err[SPACE][TAB]/var/usr.err.log.
修改完该配置文件后,为了使新的配置生效需要运行命令:
kill -HUP `cat /etc/syslog.pid`;或重启syslogd服务器:
/etc/init.d/syslog stop
/etc/init.d/syslog start
> /var/adm/messages.0命令用来清空日记文件
典型的syslog.conf文件如下:
logger
这是个可执行程序,位于/usr/bin目录下,用来向syslogd服务器模拟发送log消息。例如:
logger -p user.warning "Hello,I am logger"
newsyslog
这是个脚本程序,位于/usr/lib目录下,用来回滚log文件。这里所说的回滚是指:按时间将log文件备份到另外一个目录,清空log文件,并自动删除备份目录中过期的log文件。典型的newsyslog脚本文件如下:
#!/bin/sh
#
# /usr/lib/newsyslog - rotate log files (loghost)
#
LOGDIR=/var/log
if test -d $LOGDIR
then
cd $LOGDIR
for LOG in messages auth.log daemon.log lpr.log mail.log news.log user.loguucp.log ; do
test -f $LOG.6 && mv $LOG.6 $LOG.7
test -f $LOG.5 && mv $LOG.5 $LOG.6
test -f $LOG.4 && mv $LOG.4 $LOG.5
test -f $LOG.3 && mv $LOG.3 $LOG.4
test -f $LOG.2 && mv $LOG.2 $LOG.3
test -f $LOG.1 && mv $LOG.1 $LOG.2
test -f $LOG.0 && mv $LOG.0 $LOG.1
test -f $LOG && mv $LOG $LOG.0
cp /dev/null $LOG
chmod 640 $LOG
done
fi
/bin/kill -HUP `cat /etc/syslog.pid`
# end of file /usr/lib/newsyslog
newsyslog脚本需要被cron程序定时执行。