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如何连接远程FTP服务器?操作步骤与方法详解

    在Linux系统中,连接远程FTP服务器是常见的文件传输需求,无论是上传本地文件到服务器,还是从服务器下载资源到本地,掌握FTP连接方法都非常实用,FTP(File Transfer Protocol)是一种基于TCP/IP协议的文件传输协议,支持客户端与服务器之间的文件交互操作,本文将详细介绍Linux环境下……

    2025年9月30日
    7000
  • 如何查linux版本信息查询

    在Linux系统中,查询版本信息是日常运维、开发调试和问题排查中的常见需求,Linux版本信息通常包括发行版名称(如Ubuntu、CentOS)、版本号(如20.04、7.9)、内核版本(如5.15.0-88-generic)、系统架构(如x86_64)等,不同信息可能需要通过不同命令或文件获取,本文将详细介绍……

    2025年9月11日
    7000
  • 如何退出Linux命令行?新手必学实用方法

    在Linux系统中,“退出命令行”可能涉及多种场景,比如退出当前终端会话、关闭远程连接、返回图形界面或完全关闭系统等,不同场景对应的操作方式不同,需要根据具体情况选择合适的方法,以下从常见场景出发,详细说明Linux命令行的退出方法,并附操作总结表格及常见问题解答,退出当前终端会话(本地Shell)普通退出:e……

    2025年8月22日
    7200
  • Linux如何快速安装deb文件?

    安装前的准备系统兼容性确认仅适用于基于 Debian 的发行版(Ubuntu/Debian/Kali Linux 等),通过终端检查系统架构: uname -m # 输出 x86_64 表示 64 位系统,i686 表示 32 位下载与系统架构匹配的 .deb 文件(如 package_amd64.deb 对应……

    2025年7月24日
    9000
  • linux如何从硬盘启动

    GRUB 引导界面选择从硬盘启动的系统项,或进入

    2025年8月10日
    9200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信