Linux磁盘空间告警应按“分区→目录→进程→文件”链路排查:先用df -h定位高占用分区,再用du -sh * | sort -hr找大目录,接着用lsof +L1查已删未释放文件,最后针对Docker、日志、MySQL等场景专项处理。

Linux磁盘空间告警?别急着删日志,先定位真实“罪魁祸首”。核心思路就一条:从大到小、由表及里、聚焦活跃写入路径。
用 df -h 看整体水位,重点关注 Use% 列。注意看 Mounted on 列——/var、/home、/tmp、/ 是高频爆满区。如果看到某分区 95%+,立刻往下查,别跳步。
df -hT 多看一列文件系统类型(如 ext4/xfs),部分场景(如 xfs)需搭配不同命令清理df 显示已满但 du 统计不一致——大概率是有进程在删除大文件但句柄未释放(常见于日志轮转异常)进问题分区根目录(如 cd /var),执行:
du -sh * | sort -hr | head -20
这条命令直接列出当前层前20个最大子目录,sort -hr 按人类可读大小逆序排,一眼锁定目标。
sudo: sudo du -sh * 2>/dev/null | sort -hr | head -10
du -sh ./*/** 2>/dev/null | sort -hr | head -10(bash 4.0+)或分步进入可疑目录再查运行 lsof +L1(需 root 权限)。输出里带 DEL 标记的文件,就是被 rm 掉但进程还在写的“幽灵文件”,占着空间不放。
ps -p PID -o pid,comm,cmd 查是哪个进程kill -HUP PID 尝试重载(对支持该信号的服务有效)● Docker 占满 /var: docker system df -v 查镜像、容器、卷用量;清理用 docker system prune -a --volumes(注意加 --volumes 会删所有未使用卷)
● /var/log 爆满: 先 ls -lt /var/log/ 找最新大日志;用 journalctl --disk-usage 看 journald 占用;限制日志大小:sudo mkdir -p /etc/systemd/journald.conf.d/ && echo -e "[Journal]\nSystemMaxUse=500M" | sudo tee /etc/systemd/journald.conf.d/limit.conf,再 sudo systemctl restart systemd-journald
● MySQL /var/lib/mysql 胀库: 进数据库查大表:SELECT table_schema,table_name,round(((data_length + index_length) / 1024 / 1024), 2) AS size_mb FROM information_schema.TABLES ORDER BY size_mb DESC LIMIT 10;;确认后用 OPTIMIZE TABLE 或归档旧数据
基本上就这些。排查不是拼命令数量,而是建立“分区 → 目录 → 进程 → 文件”的链路思维。动手前多看一眼 df 和 du 差异,能避开八成误操作。
以上就是Linux磁盘空间如何排查_高频场景实战指导更易上手【教程】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号