温馨提示×

ubuntu文件系统为何满溢

小樊
44
2026-09-13 05:09:13
栏目: 智能运维

在 Ubuntu(以及绝大多数 Linux 系统)中,“文件系统满溢”通常指 磁盘空间被占满,导致无法写入新文件、服务异常甚至系统变慢。常见原因和排查思路如下:


一、最常见原因

1. 日志文件过大

  • 系统日志(/var/log)持续写入
  • 服务报错不断,日志爆炸
  • 常见文件:
    /var/log/syslog
    /var/log/kern.log
    /var/log/journal/
    

2. 包管理器缓存堆积

  • apt 下载的 .deb 包未清理
    /var/cache/apt/archives/
    

3. Docker / 容器相关

  • 镜像、容器、卷未清理
    /var/lib/docker
    
  • 尤其是 Docker 日志无限增长

4. 用户数据无限制增长

  • 网站上传文件
  • 数据库文件(MySQL / PostgreSQL)
  • 备份文件未轮转

5. inode 耗尽(不是空间满)

  • 小文件极多(如日志、缓存)
  • df -h 正常,但 df -i 满了

6. deleted 文件仍被进程占用

  • 文件已删,但进程未释放
  • df 显示满,du 找不到占用

二、快速排查命令

1. 查看磁盘使用情况

df -h

2. 查看 inode 使用情况

df -i

3. 找大目录

du -h --max-depth=1 /

4. 找被删但未释放的文件

lsof +L1

5. 查看 journal 日志大小

journalctl --disk-usage

三、常见解决方案

清理 apt 缓存

sudo apt clean

清理旧日志

sudo journalctl --vacuum-time=7d
sudo rm /var/log/*.log.old

Docker 清理

docker system prune -a

释放被占用的 deleted 文件

# 找到占用进程后重启服务
sudo systemctl restart <service>

四、预防建议

  • 配置 logrotate
  • 定期清理缓存
  • 监控磁盘(dfprometheusnode_exporter
  • Docker 限制日志大小
  • 重要目录单独分区(/var/home

如果你愿意,可以贴出:

df -h
du -h --max-depth=1 /

我可以帮你精确判断是哪一种“满”。

0