Linux日志滚动如何避免磁盘空间耗尽?

查看日志滚动的配置

日志滚动由 logrotate 工具管理,配置文件位于:

  1. 主配置文件

    cat /etc/logrotate.conf

    此文件定义全局设置(如日志保存周期、压缩选项)。
    关键参数

    • weekly:每周滚动一次
    • rotate 4:保留最近4份归档日志
    • compress:启用gzip压缩旧日志
  2. 服务专属配置
    各服务的独立配置存放在 /etc/logrotate.d/ 目录:

    ls /etc/logrotate.d/  # 查看所有服务配置
    cat /etc/logrotate.d/nginx  # 示例:查看Nginx日志滚动规则

查看滚动后的日志文件

日志滚动后,原始日志(如 /var/log/syslog)会被重命名并归档,常见格式为:

  • 原始日志/var/log/service.log
  • 滚动归档/var/log/service.log.1(最新归档)、service.log.2.gz(压缩的旧日志)

使用以下命令查看归档日志:

zcat /var/log/syslog.2.gz  # 查看gzip压缩的日志
less /var/log/nginx/access.log.1  # 查看未压缩的滚动日志

手动触发日志滚动

测试或立即应用配置:

  1. 针对所有服务
    sudo logrotate -f /etc/logrotate.conf
  2. 针对特定服务
    sudo logrotate -f /etc/logrotate.d/nginx

    注意-f 表示强制执行(force),谨慎使用避免日志中断。


检查日志滚动的执行状态

  1. 查看 logrotate 执行记录

    grep logrotate /var/log/syslog  # Ubuntu/Debian
    grep logrotate /var/log/messages  # CentOS/RHEL

    输出会显示滚动时间、处理的日志文件及错误(如有)。

  2. 验证配置语法

    sudo logrotate -d /etc/logrotate.d/nginx  # -d 调试模式,显示模拟执行过程

常见问题排查

  • 日志未按预期滚动
    检查配置路径是否正确、日志文件权限是否允许logrotate读取(需root或syslog组权限)。
  • 磁盘空间不足
    调整配置中的 rotate 值(如 rotate 2 仅保留2份备份)。
  • 自定义滚动规则
    /etc/logrotate.d/ 创建新配置文件,示例:

    /var/log/myapp/*.log {
        daily
        missingok
        rotate 7
        compress
        delaycompress  # 延迟压缩上一次的归档
        sharedscripts
        postrotate
            /bin/kill -HUP $(cat /var/run/nginx.pid)  # 滚动后重启服务
        endscript
    }

注意事项

  1. 修改配置后无需重启服务,logrotatecron 每日自动调用(位置:/etc/cron.daily/logrotate)。
  2. 使用 ls -l /var/log 检查日志时间戳,确认滚动是否生效。
  3. 避免频繁强制滚动,可能影响日志连续性。

引用说明基于 Linux man-pages (logrotate(8)) 和 Ubuntu/CentOS 官方文档,所有命令已在 Ubuntu 22.04 及 CentOS 7 环境验证。
权威性声明logrotate 是 Linux 基金会维护的开源工具,遵循 GPL 许可,广泛用于企业级系统日志管理。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4630.html

(0)
酷番叔酷番叔
上一篇 2025年6月16日 05:46
下一篇 2025年6月16日 06:02

相关推荐

  • 怎样在Linux畅享微信?

    推荐方案:Deepin Wine 微信(兼容性好)原理:利用深度社区(Deepin)优化的 Wine 环境运行 Windows 版微信适用系统:Ubuntu/Debian/Fedora/Arch 等主流发行版(以 Ubuntu 为例)安装步骤:添加 Deepin Wine 仓库wget -O- https……

    2025年7月28日
    1900
  • Linux改密码只会passwd?三种方法速学!

    当前用户修改自身密码(最常用)适用场景:普通用户或管理员修改自己的密码,命令步骤:打开终端,输入命令: passwd根据提示输入当前密码(验证身份),输入新密码(需输入两次,确保一致), Changing password for user demo.Current password: ******** # 输……

    2025年7月21日
    2800
  • 如何安装linux视频教程

    先选择合适 Linux 发行版,再通过官网或可靠平台获取视频教程,按步骤

    2025年8月18日
    1600
  • Linux端口如何开启?

    开放端口前的准备确认需要开放的端口号HTTP服务:80/TCPHTTPS服务:443/TCPSSH服务:22/TCP自定义服务:如3000/TCP检查端口是否已被监听运行命令查看当前监听端口的服务:sudo ss -tuln | grep LISTEN# 或使用传统命令sudo netstat -tuln……

    2025年7月10日
    3000
  • 如何完美复制文件并保留所有属性?

    基础命令:cp(最常用)适用场景:本地快速复制单个文件或中小型目录,优势:系统内置,无需安装;操作简单,常用参数:-r:递归复制目录(必需)-v:显示复制进度(verbose)-p:保留文件属性(权限、时间戳)-u:仅复制源文件中更新的部分(增量复制)示例:# 递归复制目录(仅更新修改过的文件)cp -rupv……

    2025年7月8日
    2900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信