Linux 根分区被日志吃满?一次 58G Broker 日志清理实战_2026-05-20

一、问题背景

巡检服务器磁盘空间时,发现某台服务器根分区 / 使用率偏高。

执行查看:

复制代码
df -h

输出如下:

复制代码
文件系统                           容量  已用  可用 已用% 挂载点
/dev/mapper/vg_newroot-lv_newroot   90G   70G   21G   78% /
/dev/sda1                         1014M  198M  817M   20% /boot
//10.1.1.195/DataCenter/backup      20T   15T  5.1T   75% /home

这里需要注意:/home 是单独挂载的网络存储,不占用根分区空间。

所以本次排查重点是根分区 / 本身。


二、定位根分区大目录

为了避免跨文件系统统计,需要使用 du -x 参数,只统计当前根分区。

复制代码
du -xhd1 / 2>/dev/null | sort -h

输出如下:

复制代码
32K     /tmp
25M     /opt
38M     /etc
80M     /topsec
2.9G    /usr
3.0G    /var
5.1G    /root
59G     /data
70G     /

可以看到,根分区占用的大头并不是 /var/log,而是:

复制代码
/data  59G

继续向下排查:

复制代码
du -xhd1 /data 2>/dev/null | sort -h

输出:

复制代码
837M    /data/vehicle-report
58G     /data/apache_hdfs_broker
59G     /data

继续查看:

复制代码
du -xhd1 /data/apache_hdfs_broker 2>/dev/null | sort -h

输出:

复制代码
8.0K    /data/apache_hdfs_broker/bin
12K     /data/apache_hdfs_broker/conf
620K    /data/apache_hdfs_broker/licenses
590M    /data/apache_hdfs_broker/lib
58G     /data/apache_hdfs_broker/log
58G     /data/apache_hdfs_broker

问题已经很清楚:

复制代码
/data/apache_hdfs_broker/log

日志目录占用了约 58G


三、查看日志文件详情

执行:

复制代码
ls -lh /data/apache_hdfs_broker/log

发现日志目录下存在大量历史日志,例如:

复制代码
apache_hdfs_broker.log.2025-09-06
apache_hdfs_broker.log.2025-10-01
apache_hdfs_broker.log.2026-01-01
apache_hdfs_broker.log.2026-05-19

同时发现一个异常大的输出日志:

复制代码
apache_hdfs_broker.out  32G

该文件属于 Broker 服务的标准输出日志,不是业务数据文件,可以清空内容,但不建议直接删除。


四、处理方式

1. 清空超大的 .out 文件

不要使用 rm 删除正在被进程写入的日志文件,避免文件句柄未释放导致空间不释放。

推荐使用:

复制代码
: > /data/apache_hdfs_broker/log/apache_hdfs_broker.out

或者:

复制代码
truncate -s 0 /data/apache_hdfs_broker/log/apache_hdfs_broker.out

这两种方式都是保留文件本身,只清空文件内容。


2. 删除历史归档日志

历史日志文件格式为:

复制代码
apache_hdfs_broker.log.2026-05-18
apache_hdfs_broker.log.2026-05-19

如果需要删除超过 1 天的历史日志,可以执行:

复制代码
find /data/apache_hdfs_broker/log -maxdepth 1 -type f \
  -name "apache_hdfs_broker.log.20*" \
  -mmin +1440 \
  -delete

其中:

复制代码
-mmin +1440

表示修改时间超过 1440 分钟,也就是超过 24 小时。

本次清理完成后,空间明显释放。


五、清理后验证

再次查看根分区:

复制代码
df -h /

结果:

复制代码
文件系统                           容量  已用  可用 已用% 挂载点
/dev/mapper/vg_newroot-lv_newroot   90G   13G   78G   15% /

查看 Broker 日志目录:

复制代码
du -sh /data/apache_hdfs_broker/log

结果:

复制代码
241M    /data/apache_hdfs_broker/log

清理效果非常明显:

复制代码
根分区使用率:78% -> 15%
Broker 日志目录:58G -> 241M

六、增加定时清理策略

为了避免后续再次出现根分区被日志打满的问题,增加 crontab 定时清理。

查看当前定时任务:

复制代码
crontab -l

新增如下策略:

复制代码
# 清理 /data/apache_hdfs_broker/log
0 6 * * * find /data/apache_hdfs_broker/log -maxdepth 1 -type f -name "apache_hdfs_broker.log.20*" -mmin +10080 -delete
10 6 * * * find /data/apache_hdfs_broker/log -maxdepth 1 -type f -name "apache_hdfs_broker.out" -size +3G -exec sh -c ': > "$1"' _ {} \;

说明:

第一条:

复制代码
0 6 * * * find /data/apache_hdfs_broker/log -maxdepth 1 -type f -name "apache_hdfs_broker.log.20*" -mmin +10080 -delete

表示每天 06:00 删除超过 7 天的历史归档日志。

复制代码
10080 分钟 = 7 天

第二条:

复制代码
10 6 * * * find /data/apache_hdfs_broker/log -maxdepth 1 -type f -name "apache_hdfs_broker.out" -size +3G -exec sh -c ': > "$1"' _ {} \;

表示每天 06:10 检查 apache_hdfs_broker.out 文件,如果超过 3G,则自动清空内容。

注意,这里不是删除文件,而是清空文件内容,更适合正在运行的服务日志文件。


七、总结

本次根分区空间占用高的根因是:

复制代码
/data/apache_hdfs_broker/log 目录下历史日志长期堆积,
同时 apache_hdfs_broker.out 标准输出日志异常膨胀至 32G。

处理思路如下:

复制代码
1. 使用 df -h 确认根分区使用率;
2. 使用 du -xhd1 / 定位根分区大目录;
3. 逐层定位到 /data/apache_hdfs_broker/log;
4. 清空 apache_hdfs_broker.out 大日志文件;
5. 删除历史归档日志;
6. 增加 crontab 定时清理策略;
7. 复查根分区空间恢复正常。

最终效果:

复制代码
根分区使用率从 78% 降至 15%,
日志目录从 58G 降至 241M,
问题处理完成。

这类问题的核心不是上来就删文件,而是先搞清楚:
哪个目录大、哪些文件能删、哪些文件只能清空、哪些文件绝对不能碰。

生产环境里,删得快不算本事,删得准才是真功夫。

相关推荐
sdk大全9 小时前
Studio 3T for MongoDB 2025.13.0
数据库·mongodb
码农阿豪9 小时前
平替MongoDB:金仓多模数据库助力电子证照国产化实践
数据库·mongodb
罗超驿9 小时前
22.深入剖析JDBC架构:从原生API到企业级数据交互核心
java·数据库·mysql·面试
易辰君9 小时前
【数据库】MongoDB深度解析与Python操作指南:从安装到实战操作全覆盖
数据库·mongodb
络合白泽9 小时前
Debian 13 + NVIDIA Optimus 笔记本:从零配置 Wayland Explicit Sync 完整指南
运维·debian
一直有一个ac的梦想9 小时前
cmu15445 2025fall lec 18 transactions with two-phase lock
java·开发语言·数据库
身如柳絮随风扬10 小时前
Redis 集群脑裂深度剖析:成因、危害与防丢失策略
数据库
ㄣ知冷煖★10 小时前
统一网关架构实践:从 Token 鉴权到路由、策略与凭证池转发全链路解析
java·服务器·架构
珠海西格电力10 小时前
零碳园区的碳排放指标计算的实操步骤
大数据·运维·人工智能·物联网·能源