linux切割日志的命令 linux日志截取( 二 )


如果单纯的用定时任务crontab删除,又不太灵活 , 这时需要日志神器logrotate 。
logrotate工具是系统自带为了方便进行日志管理而产生的一个工具 。
系统会定时运行 logrotate,一般是每天一次 。也是基于定时任务crontab运行的 。
配置文件:
主配置文件的位置在 /etc/logrotate.conf , 一般配置在 /etc/logrotate.d/子目录下 。
如系统默认日志配置:
配置文件参数:
更多信息请参考man logrotate帮助文档
模板是通用的 , 而配置参数则根据你的需求进行调整 , 不是所有的参数都是必要的 。
在上面的配置文件中,我们只想要轮询一个日志文件,size=50M 指定日志文件大小可以增长到 50MB,dateext 指 示让旧日志文件以创建日期命名 。
可自行参考/etc/logrotate.d/目录下系统默认的文件 。
logrotate命令:
具体 logrotate 命令格式如下:
要为某个特定的配置调用 logrotate:
排障过程中的最佳选择是使用-d选项以预演方式运行 logrotate 。要进行验证,不用实际轮循任何日志文件, 可以模拟演练日志轮循并显示其输出 。
正如我们从上面的输出结果可以看到的,logrotate 判断该轮循是不必要的 。如果文件的时间小于一天,就会发生了 。
强制轮循即使轮循条件没有满足,我们也可以通过使用-f选项来强制 logrotate 轮循日志文件,-v参数提供了详细的输出 。
个人项目配置:
项目每天可产生20G左右的日志,显示不能做每日轮询,所以额外需要添加定时任务做每小时,或者每隔多少分钟 。
如果轮询日志异常报错如下:
error: skipping “” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.”
需要加su root root选项 。
同时添加定时任务:
定时任务说明:
第一条,每隔40分钟轮询执行一次logrotate任务 。
第二条,每天凌晨4点删除前一天的日志 , 原因如下:
由于项目系统产生日志格式的原因,会导致以下情况:
如果昨天的分割到4个后(或者1,2,3),时间到第二天后,没法转储递增,会一直停留在4,没法删除,每天会有 , 久而久之,也会占用磁盘空间 。所以需要定时删除 。
设置完成
开启定时任务日志,以便查看定时任务是否执行 。后续可取消 。
重启rsyslog
linux切割日志的命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux日志截取、linux切割日志的命令的信息别忘了在本站进行查找喔 。

推荐阅读