logrotate-日志切割示例

logrotate是linux系统自带的工具,它能够自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。node

1)配置文件示例
# cat /wls/wls81/bin/weblogic
/wls/applogs/rtlog/bloan-onlineWIIServer16780/bloan-onlineWIIServer16780.out
{
rotate 7       # 日志保留7天,自动删除
daily          # 天天轮询,weekly每周轮询,monthly每个月轮询
copytruncate   # 用于还在打开中的日志文件,把当前日志备份并截断,开始轮替
compress       # 启用压缩,指的是轮替后的旧日志,这里默认用的是gzip压缩的
notifempty     # 若是日志文件为空,轮循不会进行(不切割空文件)。
missingok      # 在日志轮循期间,任何错误将被忽略,例如“文件没法找到”之类的错误。
dateext        # 轮替的日志文件会附加上一个短横线和YYYYMMDD格式的时间戳
}linux


2)计划任务
59 23 * * * /usr/sbin/logrotate -fv /wls/wls81/bin/weblogicweb


按日志文件大小切换参数 size
把天天轮询参数去掉,而后定义size参数
size 100Mapp


3)总结
3.1 测试切割,在验证配置文件是否按需求切割时,必需要带参数-f 测试,强制切割
好比,直接命令运行计划任务,查看切割结果
$ /usr/sbin/logrotate -f /wls/wls81/bin/weblogic
$ ls /wls/applogs/rtlog/bloan-onlineWIIServer16780/
bloan-onlineWIIServer16780.out20171205.gz   --切割后的日志工具

3.2 若是咱们把配置文件放在默认位置[/etc/logrotate.d/],则默认切割时间点为凌晨3点。
这个时间不能够更改的(尝试修改/etc/logrotate.conf默认配置,也没法生效)
因此,咱们要指定时间切割的话,必须把配置文件放在其余位置,而后配合crontab任务实现按期切割。post


经常使用参数
compress          经过gzip压缩转储之后的日志
nocompress        不压缩
copytruncate      用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate    备份日志文件可是不截断
nocreate          不创建新的日志文件
delaycompress     和 compress 一块儿使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress   覆盖 delaycompress 选项,转储同时压缩。
errors address    专储时的错误信息发送到指定的Email 地址
ifempty           即便是空文件也转储,这个是 logrotate 的缺省选项。
notifempty        若是是空文件的话,不转储
mail address      把转储的日志文件发送到指定的E-mail 地址
nomail            转储时不发送日志文件
olddir directory  转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir          转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript    在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行
postrotate/endscript   在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行
daily/weekly/monthly   指定转储周期为天天,每周,每个月
rotate count      指定日志文件删除以前转储的次数,0 指没有备份,7指保留7个备份
tabootext [+] list 让logrotate     不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size size         当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)测试

相关文章
相关标签/搜索