宝塔面板服务器磁盘占用过高排查与清理实录
emer
2026-03-20
8
0
今天登录服务器,发现磁盘空间告急。系统为 Ubuntu,面板使用宝塔面板进行管理。需要快速定位哪些文件占用了大量磁盘空间,并安全地进行清理。

排查过程
查看磁盘整体使用情况
df -h
确认磁盘确实占用较高后,从根目录开始逐层排查。
第一层:根目录各分区占用
du -sh /* 2>/dev/null | sort -rh | head -20
输出结果:
14G /www
14G /var
2.8G /usr
149M /boot
84M /root
36M /tmp
19M /etc
两个大头:/www 占 14G,/var 占 14G。继续深入。
第二层:深入 /var 目录
du -sh /var/* 2>/dev/null | sort -rh | head -20
输出结果:
9.0G /var/lib
4.0G /var/log
351M /var/cache
/var/lib 和 /var/log 是两个主要占用者。
第三层:定位具体元凶
查看 /var/lib:
du -sh /var/lib/* 2>/dev/null | sort -rh | head -20
8.9G /var/lib/docker
116M /var/lib/apt
32M /var/lib/dpkg
查看 /var/log:
du -sh /var/log/* 2>/dev/null | sort -rh | head -20
4.0G /var/log/journal
1.7M /var/log/exim4
元凶锁定:
| 路径 | 大小 | 原因 |
|---|---|---|
/var/lib/docker |
8.9G | Docker 镜像、容器、缓存 |
/var/log/journal |
4.0G | systemd 系统日志堆积 |
清理操作
清理 systemd 日志(安全,无副作用)
查看当前日志占用:
journalctl --disk-usage
Archived and active journals take up 3.9G in the file system.
执行清理,只保留最近 100M:
journalctl --vacuum-size=100M
清理结果:
Deleted archived journal ... (72.0M).
Deleted archived journal ... (72.0M).
Vacuuming done, freed 3.8G of archived journals from /var/log/journal/...
一条命令释放 3.8G 空间。
说明: 该命令仅删除历史归档日志,不影响系统正常运行,新的日志照常记录。唯一的"代价"是无法回溯很久以前的系统日志,但一般用不到几个月前的记录。
排查思路总结
整个排查过程遵循逐层缩小范围的原则:
根目录 (/)
└── /var (14G)
├── /var/lib (9G)
│ └── /var/lib/docker (8.9G) ← 元凶
└── /var/log (4G)
└── /var/log/journal (4G) ← 元凶
常用命令速查:
# 查看磁盘总览
df -h
du -sh /* 2>/dev/null | sort -rh | head -20
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20
journalctl --vacuum-size=100M
docker system prune -a
五、常见占用大户参考
| 路径 | 说明 |
|---|---|
/var/log/journal |
systemd 日志,容易堆积 |
/var/lib/docker |
Docker 镜像和容器数据 |
/www/wwwlogs/ |
宝塔网站访问日志 |
/www/backup/ |
宝塔备份文件 |
/www/server/mysql/data/ |
MySQL 数据库文件 |
/var/cache/ |
系统包管理器缓存 |
/tmp/ |
临时文件 |
排查核心原则:先定位,再清理,不清不认识的文件。