logrotate
1、logrotate是什么
logrotate自动对日志文件进行轮询,压缩、删除、和发送邮件。每个日志文件可以以每天、每个星期、每月的周期进行处理。通常的,logrotate设置成了定时任务每日执行一次。通俗的说,可以按照自己的需求对logrotate进行设置,如何处理一个文件,如我们经常用的nginx的访问日志,每日做一个切割
2、配置文件
/etc/logrotate.conf
/etc/logrotate.d/
/etc/logrotate.conf会包含/etc/logrotate.d/目录下的配置文件
3、常用命令
logrotate /etc/logrotate.conf 用配置文件的话,不能马上有效,直接使用命令马上可以生效
logrotate -f /etc/logrotate.conf 强制执行
logrotate /etc/logrotate.conf -s ll.txt -s 此次执行了轮询的文件输出到指定的文件,默认为/var/lib/logrotate/logrotate.status
4、常用配置:
compress:对轮询出来的日志文件进行压缩,默认我gzip
nocompress:对轮询出来的日志文件不进行压缩
compresscmd:指定使用什么方式进行压缩,默认为gzip。指定的格式为:compresscmd /usr/bin/bzip2
compressext: 指定压缩文件的后缀,如:compressext.bz2,默认随压缩方式的
uncompresscmd:解压方式,默认为gunzip
copy:日志轮询的时候,对原日志文件进行copy,不改变原文件,相当于对原文件进行了一个快照,此选项使用的时候,create不生效
nocopy:对原日志文件不进行拷贝,此选项会覆盖copy选项
create mode owner group, create owner group:日志轮询后会创建一个新的原来名字的文件,可以设置权限和所属者或者所属组,如create 755 root lile
nocreate:轮询后不创建,也就是把要轮询的日志轮询后不会产生一个原来名字的文件,此选项会覆盖create
olddir directory:指定轮询出来的日志文件存放的目录
noolddir:轮询出来的日志文件放在与原日志文件一样的目录,此选项会覆盖olddir
createolddir mode owner group:当指定轮询日志存放路径的时候,若路径不存在,则创建
nocreateolddir: 当指定轮询日志存放路径的时候,若路径不存在,不创建,此选项会覆盖createolddir
hourly: 日志每小时做一次轮询
daily: 日志每天做一次轮询
weekly: 日志每个星期做一次轮询
monthly:日志每月做一次轮询
yearly:日志每年做一次轮询
dateext:轮询出的日志名字后加上日期
nodateext: 轮询出的日志名字不使用日期的方式,此选项会覆盖dateext
dateformat format_string:日期的格式
dateyesterday:今天做的轮询的话,文件名的日期写昨天的
delaycompress:新的轮询日志不会马上压缩,等到下一个新的轮询日志出现的时候才做压缩,要与compress参数一起使用
nodelaycompress:不会延期压缩,轮询日志后会马上进行压缩,要与compress参数一起使用;此选项会覆盖delaycompress选项
ifempty:即使日志文件为空,也要做轮询,默认为ifempty
notifempty:日志文件为空的话,不做轮询,会覆盖ifempty参数
missingok:如果要做日志轮询的日志文件不存在,那么忽略,接着做其他的
nomissingok:如果要做日志轮询的日志文件不存在,那么不会继续执行后面的,而会返回错误,默认为nomissing
maxage count:删除指定count天前的日志,如果配置了mail的话,删除的日志将会发送到指定的邮箱
start count:如果不使用dateext,轮询出的日志文件不会使用日期作为后缀,而会使用数字,star count 可以设置这个数字的开始至,如:start 9,那么就会以9开始,如log_file.9
rotate count:轮询文件的个数,当个数满了之后,会删除最老的
size size:只有当原日志文件的大小达到指定的size时,才做轮询,单位自定义
postrotate/endscript:在日志被轮转后执行
prerotate/endscript:在日志被轮转前并且有需要轮转才执行
sharedscripts:当匹配文件夹里时,时间久后,会有很多以原文件加日期命名的轮询日志,而我只需要最匹配最原始的文件做轮询,这个选项就是为了做这个设置;如果没有的话,被轮询出来的日志再下一次轮询时也会被匹配到也做轮询
例:
nginx访问日志每天做日志分割
/var/log/nginx/*log { create 0644 nginx nginx daily rotate 10 missingok notifempty compress sharedscripts postrotate /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true endscript }
结果为:
作者:李先生
-------------------------------------------
个性签名:在平凡中坚持前行,总有一天会遇见不一样的自己!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
微信公众号 微信打赏 支付宝打赏
posted on 2018-02-26 23:19 Captain_Li 阅读(1527) 评论(0) 编辑 收藏 举报