日志轮替
logrotate简介
logrotate是一个日志管理程序,用来把旧的日志文件删除(或者备份),并创建新的日志文件。有两种依据来进行日志的轮替:
- 根据日志的大小,当文件大小达到某个阈值(设定),就进行轮替。
- 根据其规定的天数来转储。在规定时间到了之后就进行日志文件的轮替。
logrotate 的执行由crond服务实现。在/etc/cron.daily目录中,有个文件logrotate,它实际上是个shell script,用来启动logrotate。它每天由cron在指定的时间(/etc/crontab)启动。
在执行logrotate时,需要指定其配置文logrotate.conf。/etc/logrotate.d目录下面的配置文件会被主动读入到logrotate.conf。
语法规则
如果你安装了一个新的服务,它的日志转储的规则可以建立一个专门的配置文件,放在/etc/logrotate.d下面。并按照以下语法进行编写:
/var/log/messages #文件位置与名字
{
size 1M #当文件大于1M自动轮替
daily #文件每天指定时间进行轮替
rotate 10 #保存10个备份文件
create 0600 root root #备份后新建一个文件
dateformat -%Y%m%d.%s #使用时间名作为备份日志后缀名
sharedscripts
postrotate #在日志转储以后执行的命令
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
# 重新启动守护进程,否则日志不会写入新建的日志文件
endscript
}
在{}中定义的规则,如果与logrotate.conf中的冲突,以/etc/logrotatate.d/中的文件定义的为准。