[root@localhost ~]# vi /etc/logrotate.conf
#see "man logrotate" for details
#rotate log files weekly
weekly
#每周对日志文件进行一次轮替
#keep 4 weeks worth of backlogs rotate 4
#保存4个日志文件,也就是说,如果进行了5次日志轮替,就会删除第一个备份曰志
#create new (empty) log files after rotating old ones create
#在日志轮替时,自动创建新的日志文件
#use date as a suffix of the rotated file dateext
#使用日期作为日志轮替文件的后缀
#uncomment this if you want your log files compressed #compress
#日志文件是否压缩。如果取消注释,则日志会在转储的同时进行压缩
#以上日志配置为默认配置,如果需要轮替的日志没有设定独立的参数,那么都会遵循以上参数
#如果轮替曰志配置了独立参数,那么独立参数的优先级更高
#RPM packages drop log rotation information into this directory include /etc/logrotate.d
#包含/etc/logrotate.d/目录中所有的子配置文件。也就是说,会把这个目录中所有的子配置文件读取进来,进行日志轮替
#no packages own wtmp and btmp -- we'11 rotate them here
#以下两个轮替曰志有自己的独立参数,如果和默认的参数冲突,则独立参数生效
/var/log/wtmp {
#以下参数仅对此目录有效
monthly
#每月对日志文件进行一次轮替
create 0664 root utmp
#建立的新日志文件,权限是0664,所有者是root,所属组是utmp组
minsize 1M
#日志文件最小轮替大小是1MB。也就是日志一定要超过1MB才会轮替,否则就算时间达到一个月,也不进行曰志轮替
rotate 1
#仅保留一个曰志备份。也就是只保留wtmp和wtmp.1曰志)
/var/log/btmp {
#以下参数只对/var/log/btmp生效
missingok
#如果日志不存在,则忽略该日志的警告信患
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
参 致 | 参数说明 |
---|---|
daily | 日志的轮替周期是毎天 |
weekly | 日志的轮替周期是每周 |
monthly | 日志的轮控周期是每月 |
rotate数宇 | 保留的日志文件的个数。0指没有备份 |
compress | 当进行日志轮替时,对旧的日志进行压缩 |
create mode owner group | 建立新日志,同时指定新日志的权限与所有者和所属组.如create 0600 root utmp |
mail address | 当进行日志轮替时.输出内存通过邮件发送到指定的邮件地址 |
missingok | 如果日志不存在,则忽略该日志的警告信息 |
nolifempty | 如果曰志为空文件,則不进行日志轮替 |
minsize 大小 | 日志轮替的最小值。也就是日志一定要达到这个最小值才会进行轮持,否则就算时间达到也不进行轮替 |
size大小 | 日志只有大于指定大小才进行日志轮替,而不是按照时间轮替,如size 100k |
dateext | 使用日期作为日志轮替文件的后缀,如secure-20130605 |
sharedscripts | 在此关键宇之后的脚本只执行一次 |
prerotate/cndscript | 在曰志轮替之前执行脚本命令。endscript标识prerotate脚本结束 |
postrolaie/endscripl | 在日志轮替之后执行脚本命令。endscripi标识postrotate脚本结束 |
"/var/log/httpd/access.log" /var/log/httpd/error.log {
#日志轮替的是/var/log/httpd/中RPM包默认安装的apache正确访问日志和错误日志
rotate 5
#轮替5次
mail www@my.org
#把信息发送到指定邮箱
size 100k
#日志大于100KB时才进行日志轮替,不再按照时间轮替
sharedscripts
#以下脚本只执行一次
postrotate
#在日志轮替结束之后,执行以下脚本
/usr/bin/killall -HUP httpd
#重启apache 服务
endscript
#脚本结束
}
[root@localhost ~]# chattr +a /var/log/alert.log #先给日志文件赋予chattr的a属性,保证日志的安全
[root@localhost ~]# vi /etc/logrotate.d/alter
#创建alter轮替文件,把/var/log/alert.log加入轮替
/var/log/alert.log {
weekly
#每周轮替一次
rotate 6
#保留6个轮替曰志
sharedscripts
#以下命令只执行一次
prerotate
#在日志轮替之前执行
/usr/bin/chattr -a /var/log/alert.log
#在日志轮替之前取消a属性,以便让日志可以轮替
endscript
#脚本结朿
sharedscripts
postrotate
#在日志轮替之后执行
/usr/bin/chattr +a /var/log/alert.log
#在日志轮替之后,重新加入a属性
endscript
sharedscripts
postrotate
/bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) fi>/dev/null
endscript
#重启rsyslog服务,保证日志轮替正常进行
}
新闻热点
疑难解答