1.logrotate配置文件详解
linux logrotate基于crond服务(定时任务)来运行的,默认全局配置文件为:/etc/logrotate.conf。
全局配置文件解释(/etc/logrotate.conf)
[root@rhel77 log]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# 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
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
[root@rhel77 log]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly #所有的日志文件,每周滚动转储一次
# keep 4 weeks worth of backlogs
rotate 4 #日志发送滚动转储后,指定备份日志文件保存多少个(权限不变)
# 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 #logrotate子配置文件路径
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp { #转储日志路径
monthly #一个月转储一次
create 0664 root utmp #指定转储后创建新文件,权限为664,用户为root,属组为utmp
minsize 1M #指定日志轮替的最小值,也就是日志一定要达到这个最小值(1M)才会轮替,否则就算时间达到也不轮替
rotate 1 #指定保留几个备份副本,其会覆盖定义的全局变量
}
/var/log/btmp { #转储日志路径
missingok #当日志文件不存在时,忽略该日志文件的警告信息
monthly #一个月转储一次
create 0600 root utmp #指定转储后创建新文件,权限为600,用户为root,属组为utmp
rotate 1 #指定保留几个备份副本,其会覆盖定义的全局变量
}
# system-specific logs may be also be configured here.
2.logrotate配置文件常用相关参数解释
logrotate配置文件参数解释
logrotate配置文件参数
参数 | 说明 |
hourly | 每时轮替 |
daily | 每天轮替 |
weekly | 每周轮替 |
monthly | 每月轮替 |
rotate <number> | 保留的日志个数 |
create mode owner group | 新建日志,并规定日志文件的权限、所有者、所属组 |
nocreate | 不建立新的日志文件 |
copytruncate | 用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据 |
nocopytruncate | 备份日志文件,不过不截断 |
mail EmailAddress | 当日志轮替时,输出内容通过邮件地址发送到指定的Email地址 |
errors EmailAddress | 存储时的错误信息发送到指定的Email地址 |
nomail | 转储时不发送日志文件 |
compress | 压缩日志文件的所有非当前版本 |
delaycompress | 压缩除了当前和下一个最近的所有版本 |
nodelaycompress | 覆盖delaycompress选项,转储同时压缩 |
olddir "dir" | 指定日志文件的旧版本放在“dir”中 |
noolddir | 转储后的日志文件和当前日志文件放在同一个目录下 |
missingok | 当日志文件不存在时,忽略该日志文件的警告信息 |
ifempty | 即使日志文件为空文件也做轮转,这个是logrotate的缺省选项 |
notifempty | 如果日志为空文件,则不进行日志轮替 |
minsize | 日志轮替的最小值,也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替 |
size | 日志只有达到指定大小才轮替,不按照时间轮替 |
dateext | 使用日期作为轮替文件后缀 |
dateformat -%Y%m%d-%H | 对日期格式进行定制;必须配合dateext使用,只支持 %Y %m %d %s 这四个参数 |
dateyesterday | 如果定时任务时间设置的是0点执行,就要配置此项,不然切割的内容是昨天的,但是日志名却是当天的 |
sharedscripts | 该关键字后的脚本只执行一次 |
prerotate/endscript | 在日志轮替之前执行脚本命令 |
postrotate/endscript | 在日志轮替之后执行脚本命令 |