Administrator
Published on 2023-11-17 / 34 Visits
0
0

日志轮转工具logrotate

说明

logrotate工具可以用来实现根据预定义的规则定期轮转日志文件,并删除旧的日志文件。可以在系统上设置适当的日志轮转规则来管理通用日志文件。
这个对于生成的日志,比如一直只有一个日志的话,可以避免日志过大或过多的问题。

其实对于软件生成的日志,软件自身也可以实验相关的清理逻辑,只不过使用logrotate是借助外部程序来进行管理。

使用

配置文件路径

/etc/logrotate.conf(主配置)和/etc/logrotate.d/*(子配置)

/etc/logrotate.d/目录下是具体的配置,一般是以服务名称命名(自定义名称即可),比如yum等配置。主配置和子配置有冲突时,以子配置的规则为准。

使用

比如我们需要把/home/log.log这个文件进行处理,我们可以在/etc/logrotate.d下面增加一个test文件,内容如下:

/home/log.log {
    missingok
    weekly
    rotate 10
    size +100k
    compress
    dateext
    notifempty
    create 0600 root root
}

说明:

  • missingok:日志切割时缺少该日志不会报错
  • weekly:每周切割一次
  • rotate 10:切割后最多保留10个文件
  • size +100M:当前日志容量超过100M时,立即进行日志切割
  • compress:切割后的日志进行压缩
  • dateext:切割后的日志以时间’年月日’为后缀
  • notifempty:日志为空时不进行切割
  • create 0600 root root:切割时创建一个新日志文件,模式为0600,日志属组为root root

如果是mysql的日志文件,由于权限问题,root root 可能需要改为mysql mysql

执行

logrotate的执行是借助crond的,在/etc/cron.daily目录下,可以看到logrotate文件脚本,其内容就是执行logrotate程序。
我们可以手动执行该文件,测试上面我们所配置的。

/etc/cron.daily大概在每天的 4点12分执行。

参考

https://blog.csdn.net/weixin_40547071/article/details/122298274
https://www.jianshu.com/p/a488feefd701


Comment