linux 有很多日志归档整理的命令,其中logrotate作为原生支持, 已经可以应付大多数场合,下面一起看下一些使用分享;
1 2 3 4 5
| logrotate -f -v -d -s -f: 手动执行时指定需要执行的文件 -v: 输出详细的打包过程 -d: 模拟打包过程,但不真实执行 -s:
|
1 2 3 4 5 6 7 8 9 10
|
/var/log/xxx.log { //待处理日志目录及文件名 xxxx1 //命令1 xxxx2 //命令2 ... lastaction /usr/bin/killall -HUP rsyslogd endscript }
|
配置文件可使用配置命令: @todo
- 设置处理周期: daily/weekly/monthly/yearly
- 通过文件大小控制触发命令: size 100K
- 处理后执行指定命令: lastaction/endscript
- 处理前执行指定命令: firstaction/endscript
- 添加日期后缀作为压缩后文件名: dateext
- 设置日期格式: dateformat %Y%m%d
- 归档命令执行时忽略异常(如:文件缺失等): missingok
- 设置归档最多保留的文件数量: rotate 24
- 归档后对归档文件进行压缩处理: compress
- 压缩处理在下一次归档时再执行: delaycompress
- 如果日志是个空文件不进行归档: notifempty