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下加法运算怎么实现?

    基础整数加法(适用于Bash/Shell)expr 命令传统POSIX兼容方法,注意操作符两侧需留空格:sum=$(expr 5 + 3) # 输出8⚠️ 限制:仅支持整数,符号需转义(如需写为\*)双括号Bash内置算术扩展,效率更高:echo $((5 + 3)) # 直接输出8result=$((num1……

    2025年7月27日
    4100
  • linux如何执行elf

    Linux中,可以通过直接运行可执行文件(`.

    2025年8月13日
    3400
  • Linux 7如何重装Linux?详细步骤与方法指南

    重装Linux系统(以CentOS 7为例)是解决系统故障、升级版本或清理数据的常用操作,整个过程需谨慎操作,避免数据丢失,以下是详细步骤及注意事项:准备工作重装前需完成以下准备,确保操作顺利:备份重要数据:将用户目录(/home)、配置文件(如/etc/nginx、/etc/my.cnf)、应用数据(数据库……

    2025年9月28日
    1600
  • Linux中如何查看文件所有者?

    使用 ls -l 命令(最常用)命令示例:ls -l 文件名输出解析:-rw-r–r– 1 alice developers 1024 Jan 1 10:00 example.txt第三列 alice:文件所有者(用户)第四列 developers:文件所属用户组第一列 -rw-r–r–:权限标识(r……

    2025年7月13日
    5700
  • Linux中如何ping通他人IP地址?操作步骤有哪些?

    在Linux系统中,ping命令是最基础且常用的网络诊断工具,它基于ICMP(Internet Control Message Protocol,互联网控制报文协议)协议,用于测试本地主机与目标主机之间的网络连通性、延迟(往返时间)、丢包率等关键指标,无论是排查网络故障、监控服务器状态,还是验证网络配置是否正确……

    2025年9月23日
    1800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信