Linux日志切割方案_logrotate配置实践说明【指导】

4次阅读

logrotate 是 Linux 默认日志轮转工具,支持按时间、大小自动归档压缩清理;配置含全局文件 /etc/logrotate.conf 与服务专属文件(如 /etc/logrotate.d/nginx),可手动测试或通过 systemd timer 调度。

Linux 日志切割方案_logrotate 配置实践说明【指导】

如果您的 Linux 系统中日志文件持续增长而未加管控,可能导致磁盘空间耗尽或日志检索效率下降。logrotate 是系统默认提供的日志轮转 工具,通过配置可实现按时间、大小自动归档、压缩与清理。以下是具体配置实践步骤:

一、基础 配置文件 结构说明

logrotate 主配置由全局配置文件 /etc/logrotate.conf 驱动,该文件定义默认行为,并通过 include 指令加载 /etc/logrotate.d/ 目录下各服务的独立配置。每个配置块针对特定日志路径设定轮转策略,语法严格依赖缩进与关键字顺序。

1、使用文本编辑器打开全局配置文件:sudo nano /etc/logrotate.conf

2、确认存在包含语句:include /etc/logrotate.d

3、检查 /etc/logrotate.d/ 目录是否存在且可读:ls -l /etc/logrotate.d/

二、按天轮转并保留 7 份压缩归档

此方案适用于访问量稳定、单日日志体积可控的服务(如nginx access.log),确保每日生成新日志,旧日志以。gz 压缩保存,超过 7 天自动删除。

1、在 /etc/logrotate.d/ 下创建服务专属配置文件:sudo nano /etc/logrotate.d/nginx

2、写入以下内容:

/var/log/nginx/*.log {

  daily

  missingok

  rotate 7

  compress

  delaycompress

  notifempty

  create 0644 www-data www-data

  sharedscripts

  postrotate

    if [-f /var/run/nginx.pid]; then

      kill -USR1 `cat /var/run/nginx.pid`

    fi

  endscript

}

三、按大小触发轮转并限制总占用空间

当某类日志突发增长(如调试模式下的应用日志),仅按时间轮转可能无法及时释放空间。启用 size 参数可在日志达到指定 字节 数时立即触发轮转,配合 maxsize 可避免单次归档过大。

1、新建配置文件:sudo nano /etc/logrotate.d/app-debug

2、填入如下配置:

/var/log/myapp/debug.log {

  size 100M

  maxsize 200M

  rotate 5

  compress

  copytruncate

  missingok

  notifempty

}

四、手动强制执行并验证轮转效果

配置完成后不需等待定时任务,可立即运行 logrotate 进行测试,添加 - d 参数可模拟执行并输出详细过程,- v 参数显示实际动作,避免误删真实日志。

1、执行预演模式查看行为逻辑:sudo logrotate -d /etc/logrotate.conf

2、执行一次真实轮转(仅作用于匹配配置的文件):sudo logrotate -v /etc/logrotate.conf

3、检查归档文件是否生成:ls -lt /var/log/nginx/

4、确认原始日志是否被截断或重建:stat /var/log/nginx/access.log

五、配置 systemd timer 替代 cron 调度

部分现代发行版(如 Ubuntu 20.04+、CentOS 8+)使用 systemd 管理 logrotate 调度,其精度与依赖控制优于传统 cron。需禁用 crontab 中的 logrotate 条目,并启用对应 timer 单元。

1、停用 cron 调度:sudo systemctl mask logrotate.timer

2、启用 systemd 原生 timer:sudo systemctl enable –now logrotate.timer

3、查看下次触发时间:sudo systemctl list-timers logrotate.timer

4、检查 timer 状态是否活跃:sudo systemctl status logrotate.timer

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-07发表,共计1755字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources