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 qt如何静态编译程序

    Linux 下使用 Qt 静态编译程序,需配置 Qt 的静态库路径,并在 .

    2025年8月18日
    16700
  • 如何查看Linux进程状态?ps、top命令详解?

    在Linux系统中,进程是程序执行的基本单位,查看进程状态是系统管理和故障排查的核心操作,Linux进程状态通过特定标识符描述,可通过多种命令工具实时或静态获取,帮助用户监控进程运行情况、资源占用及父子关系,本文将详细介绍查看Linux进程状态的各类方法、工具及参数使用,并结合实例说明输出含义,Linux进程状……

    2025年9月26日
    14700
  • Linux操作系统安装终端服务的详细步骤是怎样的?

    在Linux系统中,终端服务是实现远程管理和多用户访问的核心功能,通过终端服务,用户可以在不同设备上安全地连接到Linux服务器,进行命令行操作或图形界面交互,本文将以主流的SSH(Secure Shell)协议为核心,结合图形终端服务(如XRDP),详细介绍Linux终端服务的安装、配置与安全加固流程,涵盖U……

    2025年10月7日
    17200
  • 如何同时为用户加执行权、为组去写权?

    权限基础概念权限类型读(r):查看文件内容或目录列表写(w):修改文件或增删目录内容执行(x):运行程序或进入目录数字表示:r=4, w=2, x=1(如 rwxr-xr– = 754)权限对象用户(Owner):文件创建者组(Group):共享权限的用户组其他(Others):系统所有其他用户查看权限使用……

    2025年7月13日
    16900
  • 如何查看eth0等网卡名?

    命令行激活网络(通用方法)使用 ip 命令(推荐)# 启动网卡(以 enp0s3 为例)sudo ip link set enp0s3 up# 分配IP地址(DHCP自动获取)sudo dhclient enp0s3# 静态IP配置(手动指定)sudo ip addr add 192.168.1.100/24……

    2025年7月4日
    18900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信