首页/系统/信创系统运维速查/磁盘空间告急的紧急处置
常见问题65 条

磁盘空间告急的紧急处置

空间满会连锁导致日志写失败、数据库停写:完确认爆的挂载点,再从日志、临时文件、大文件三条线快速回收并评估扩容。

信创系统运维速查系统更新于 2026-10-13

磁盘空间告急怎么处置

分区写满会连锁引发故障:日志写不进去、数据库停止写入、服务异常退出,甚至影响登录。处置顺序是先确认到底是哪个挂载点满,再沿三条线回收——日志与轮转文件、临时文件、大文件与目录;同时评估是否需要扩容。生产环境的删除动作属于止血手段,删之前要确认文件用途,数据库目录下的文件更不能凭大小直接删除。

基本信息

定位命令df -hT 看挂载点,du 逐层下钻
日志回收journalctl --vacuum-size 或按时间清理压缩日志
临时文件按修改时间清理 /tmp 与业务临时目录
常见差异原因句柄未释放导致 df 与 du 对不上
后续动作评估扩容或迁移数据,避免反复发生

典型使用场景

  • 日志暴涨把根分区写满,服务开始报写入失败
  • 数据库分区空间不足导致写入中断,需要紧急释放空间
  • 临时目录堆积历史文件,应用反复失败
  • 审计与安全日志长期未轮转,占用持续增长
  • 排查 df 与 du 差异,判断是否存在被删文件仍被占用
  • 规划扩容:确认是短期突增还是长期容量不足

定位与回收

定位与回收
df -hT                                   # 先确认哪个挂载点满
du -x -h --max-depth=1 /var | sort -h | tail -15   # 逐层下钻找占用大户
du -x -h --max-depth=1 / | sort -h | tail -15
journalctl --disk-usage                  # journal 当前占用规模
journalctl --vacuum-size=500M            # 收缩 journal 到指定大小
find /var/log -name '*.gz' -mtime +15 -delete      # 清理较旧的压缩日志
find /tmp -type f -mtime +7 -delete      # 确认无业务依赖后再清理
# 删除的文件仍被占用时:lsof +L1 | head
# 定位到的大文件先确认用途,再决定删除、压缩还是迁移

回收手段对照

对象手段注意
journal 日志journalctl --vacuum-size 或 --vacuum-time收缩后无法恢复历史日志
轮转日志按时间清理已压缩文件保留近期用于追溯
临时目录按修改时间批量清理确认无业务正在使用
大文件迁移到其它分区或压缩归档先确认文件用途与所有人
被删占用重启或重载持有句柄的进程评估业务可中断性
生产环境删除文件只是止血:不解决根因的话空间很快再次被填满,处置完成后必须评估扩容或迁移,并检查日志轮转策略是否合理。
df 与 du 数字差距明显时优先怀疑文件已被删除但句柄仍被持有,用 lsof 查找这类文件,而不是怀疑文件系统损坏。

易错点

  • df 显示满就盲目删文件,误删数据库或业务数据文件造成不可恢复的损失
  • 清理范围包括挂载在 /proc、/sys 之类虚拟文件系统上的内容,操作无效且可能引起系统异常
  • 只清理不查根因,几天后空间再次写满,反复处于救火状态
  • 清理完不核对 df 与业务状态,空间释放了但服务仍处于异常状态

数据来源与参考

  • man 1 df
  • man 1 du
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌