Linux日志处理神器-Logrotate

Linux日志处理神器-Logrotate

原创2023-02-03 18:26·keepModist

Logrotate简介

Logrotate是Linux中日志分割、压缩、清理的工具,一般CentOS默认都会安装该工具。

logrotate运行原理

logrotate依赖于anacron执行每小时、每天、每周或每月的定时任务,corn每个小时会扫描当前机器中定时任务执行状态。

logrotate运行依赖的文件:

  • /etc/cron.daily/logrotate ——logrotate具体执行命令脚步
  • /etc/logrotate.conf ——logrotate配置文件
  • /etc/anacrontab ——anacrontab配置文件
  • /var/lib/logrotate/logrotate.status ——记录清理日志状态的文件
  • /var/spool/anacron/cron.daily ——当前anacron已经执行的日期
  • /etc/logrotate.d/* ——自定义清理日志的配置文件,优先级高于logrotate.conf

自定义logrotate配置文件步骤和配置文件参数解读

  • 在/etc/logrotate.d/目录下新建文件,例如nginx
# Rotate nginx log
/nginx/logs/*.log {
    daily
    rotate 10
    missingok
    notifempty
    sharedscripts
    dateext
    size 10M
    postrotate
      kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
    endscript
}
  • 示例配置文件参数解读,若有其他需要可以自行翻阅资料
  • /nginx/logs/*.log —— 需要清理的日志路径
  • daily ——清理的周期,可以选择的其他周期为weekly、monthly
  • rotate ——需要保留的日志文件的数量
  • missingok —— 忽略报错直接执行
  • notifempty —— 空文件不会执行日志清理
  • sharedscripts —— 当有多个日志文件清理时,只有最后一个日志清理执行脚本。否则每个日志清理完都会执行脚本
  • dateext ——使用日期作为后缀
  • postrotate ——日志执行完后需要执行的命令或者脚本
  • size ——当日志文件大于10M才执行日志清理

logrotate命令格式简介

**logrotate [OPTION...] **

参数解释

  • -d,--debug模式 测试配置文件是否存在错误,不会具体执行配置文件中的任务
  • -f,--force 强制执行日志清理
  • -v,--verbose显示详细执行过程

调试nginx清理日志配置文件是否正确:logrotate -d /etc/logrotate.d/nginx

强制清理nginx日志:logrotate -f /etc/logrotate.d/nginx

显示详细清理过程:logrotate -v /etc/logrotate.d/nginx

posted @ 2023-08-21 11:17  寻梦99  阅读(47)  评论(0)    收藏  举报