Linux服务器磁盘告警别等满了才处理:df、du与日志轮转一套组合拳

举报
yd_211833921 发表于 2026/10/29 01:03:23 2026/10/29
【摘要】 磁盘满了是最常见又最狼狈的服务器故障:服务先写不进日志,再写不进数据库,最后连登录都受影响。很多人等到报警才动手,其实一套固定的排查流程十分钟就能走完。第一步先看整体:df -h 看各挂载点用量,重点看根分区和使用率超过80%的盘;再用 df -i 看 inode,有时磁盘还有空间但小文件太多把 inode 占满,照样写不进去。两者一起看,才不会误判。第二步定位大户:du -sh /* 先看...

磁盘满了是最常见又最狼狈的服务器故障:服务先写不进日志,再写不进数据库,最后连登录都受影响。很多人等到报警才动手,其实一套固定的排查流程十分钟就能走完。
第一步先看整体:df -h 看各挂载点用量,重点看根分区和使用率超过80%的盘;再用 df -i 看 inode,有时磁盘还有空间但小文件太多把 inode 占满,照样写不进去。两者一起看,才不会误判。
第二步定位大户:du -sh /* 先看一级目录,再对可疑目录逐层下钻,比如 du -sh /var/log/、du -sh /var/lib/docker/。生产机上别一上来就 du 整盘扫,IO 大、耗时长,先从日志、缓存、备份、容器数据这几个常见大户查起。找大文件也可以用 find /var/log -type f -size +100M 列出超过100M的文件,目标更明确。
第三步处理日志:先确认是哪个服务在狂写日志,再决定是删还是转。直接删正在被写的文件要小心,空间未必立即释放;更稳妥的做法是先清空内容,例如 : > /var/log/xxx.log,或者用 truncate -s 0 处理。长期办法是配好 logrotate:按天或按大小轮转、保留最近若干份、压缩旧日志,配置文件放在 /etc/logrotate.d/ 下,改完用 logrotate -d /etc/logrotate.d/xxx 先演练一遍再上线。
第四步清理可回收空间:apt clean 清包缓存、journalctl --vacuum-size=500M 限制 systemd 日志、docker system prune 清理无用镜像和容器(生产机执行前务必确认没有要保留的容器和卷)。备份目录也要定期检查,旧备份不设保留期,迟早会把盘吃光。
第五步留好防线:给根分区和数据盘设使用率告警,80%提醒、90%必须处理;再配一个每周跑一次的清理脚本,只清明确可再生的缓存和已轮转旧日志,不碰业务数据。磁盘问题怕的不是满,而是满了才发现。把 df、du、logrotate 这三件套变成固定动作,多数磁盘告警在变成故障之前就能处理掉。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。