首页 技术教程 正文阅读

宝塔面板服务器磁盘占用过高排查与清理实录

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/ 临时文件

排查核心原则:先定位,再清理,不清不认识的文件。

emer

每天发现网络新鲜事

54560 文章
12 分类
7213.6k+ 访问

搜索

Zoomed Image