很久没打开宝塔了今天登录硬盘占用超过80%了,经过清理大概共恢复了10G左右,使用命令查询占用需要快速定位哪些文件占用了大量磁盘空间,并安全地进行清理。

MySQL二进制日志

这里删除后需要到网站回收站在删除一遍才行

宝塔面板服务器磁盘占用过高排查与清理 第5张插图

网站监控报表

宝塔面板服务器磁盘占用过高排查与清理 第6张插图

日志清理工具

宝塔面板服务器磁盘占用过高排查与清理 第7张插图

系统缓存

查看磁盘整体使用情况

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/log

查看 /var/log:

du -sh /var/log/* 2>/dev/null | sort -rh | head -20
4.0G    /var/log/journal
1.7M    /var/log/exim4

元凶锁定:

路径 大小 原因
/var/log/journal 4.0G systemd 系统日志堆积

清理 systemd 日志

执行清理,只保留最近 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/log/journal systemd 日志,容易堆积
/var/lib/docker Docker 镜像和容器数据
/www/wwwlogs/ 宝塔网站访问日志
/www/backup/ 宝塔备份文件
/www/server/mysql/data/ MySQL 数据库文件
/var/cache/ 系统包管理器缓存
/tmp/ 临时文件

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