1. 系统日志的记录

    linux操作系统主要通过syslogd服务来记录日志信息。日志信息主要记录在/var/log/目录下。syslod用来记录系统运行产生的信息。klogd用来记录系统内核运行产生的信息。此外根据系统的配置,系统会在固定的时间,调用logrotate命令来更新日志信息。logrotate命令会根据/etc/logrotate.conf配置文件的设置。/etc/logrotate.conf会自动加载/etc/logrotate.d/文件夹的文件。

    syslogd的配置文件是/etc/syslogd.conf,在syslogd.conf中可以定义日志信息。syslogd将日志信息划分为7个级别。分别是info notice  warn err crit alert emerge.在系统中,可以定义来自不同地方的不同级别的信息记录到不同的地方。如

    mail.info  /var/log/messages 意思是将 mail产生的info及以上的信息记录下来

    mail.*   /var/log/messages  意思是将mail产生的所有信息都记录到/var/log/messages中。

    mail.=info /var/log/messages 意思是将mail产生的info级别的信息记录到/var/log/messages中。

    多个级别可以写在一起。

    mail.=info;cron.=info /var/log/messages.如果是同一级别,还可以简写。mail,cron.=info

    如果不想记录某个来源的信息,可以写成 

    *.* mail.none  /var/log/messages

    如果是不想记录某个来源的某个级别的日志信息,可以写成 mail。!warn /var/log/messages中。


    此外日志还可以记录到某一台服务器上,此时这台服务器需要的syslog的启动模式要作一些改变,要改/etc/sysconfig/syslog,在里面的选项中加上-r ,让syslog以服务器的模式运行。而在客户机上。/etc/syslog.config里面,加上*.* @server就可以将日志信息保存到服务器端。

/etc/logrotate.conf里面主要写日志更新的配置文件。其中还支持脚本。如:

sharedscripts

prelogrotate

chattr -a /var/log/messages

endscripts

sharedscripts

postlogrotate

/bin/killall -1 syslogd

chattr +a /var/log/messages

endscripts