logrotate轮转
减小日志大小,降低分析难度
丢弃过期日志节省空间
结合cron每天执行
软件包
logrotate
配置文件
/etc/logrotate.conf
/etc/logrotate.d
主配置文件及参数
/etc/logrotate.conf 配置文件格式
weekly 轮转频率,默认每周
rotate 4 保留4个轮转备份
create 执行轮转后创建新文件
compress 通过gzip压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
no create 不建立新的日志
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress选项,转储同时
err address 转储时的错误信息发送指定email
Ifempty 即使是空文件也转储
notifempty 如果文件是空的话,不转储
mail address 将转储日志文件发送到指定email地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一目录下
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
Include /etc/logrotate.d 包含此目录下的配置
/var/log/wtmp { 启用轮转日志
Monthly 每月轮转一次
Minsize 1M 日志达到1MB才开始轮转
Create 0664 root utmp 建新文件并设权限
Rotate 1 只保留一个备份
}
/etc/logrotate.d/*** //非系统服务产生日志,在目录下添加配置文件进行轮转
文件格式:
/var/log/admin.log {
Daily
Size=10k
Rotate=5
Compress
Sharedscripts //脚本开始 重启服务
Postrotate
/usr/bin/killall –HUP syslogd
Endscript //脚本结束
}
logrotate 手工执行轮转
-v 自动轮转,如果条件没有满足不轮转
-f 强制rotate
事例
[[email protected] logrotate.d]# cat web
/home/wwwlogs/*.log {
daily #每天备份
missingok
rotate 30 #保留30天
compress #通过gzip压缩
notifempty #如果是空文件的话,不转储
create 640 www www
sharedscripts
postrotate
[ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
endscript
}