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系统中制作.img文件(磁盘映像文件)是备份数据、创建可启动介质或构建虚拟磁盘的常见需求,以下是详细的操作方法,涵盖多种场景:基础概念IMG文件:本质是磁盘的二进制镜像,可包含分区表、文件系统及数据,常见用途:系统备份、创建虚拟磁盘、制作可启动设备(如树莓派镜像),核心工具:dd, fdisk, m……

    2025年7月24日
    17000
  • Linux命令界面如何返回?终端返回命令与操作步骤详解

    Linux命令界面中的“返回”操作涵盖多个场景,包括目录层级返回、命令历史返回、终端会话返回等,不同场景对应不同命令,掌握这些操作可大幅提升命令行操作效率,以下从常见场景出发,详细说明各类返回方法及注意事项,目录层级返回:文件系统中的“返回”在Linux文件系统中,“返回”最常用于目录层级切换,核心命令为cd……

    2025年10月5日
    12000
  • xshell如何连接到linux

    Xshell连接Linux需输入目标IP、端口(默认22),选择SSH协议,输入

    2025年8月16日
    15800
  • Linux系统下如何创建和管理脚本文件夹?操作步骤有哪些?

    在Linux系统中,创建一个专门用于存放脚本的文件夹是提高工作效率和管理脚本文件的重要步骤,无论是个人项目还是团队协作,合理的脚本文件夹结构能让代码维护、复用和执行更加便捷,下面将详细介绍如何在Linux中创建脚本文件夹,包括基础命令、权限设置、结构规划及常见问题处理,使用mkdir命令创建基础文件夹创建文件夹……

    2025年9月19日
    13600
  • linux如何开启系统日志功能

    Linux中,系统日志功能通常默认开启,可通过/etc/rsyslog.conf或`/etc/syslog.

    2025年8月14日
    14200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信