df -h是定位磁盘爆满分区的唯一可靠方法,需先查Use%超90%的Mounted on路径,再用du -sh和find逐级定位大目录及>100M文件,最后谨慎清理并清空回收站。

df -h 看清哪个分区真爆了
宝塔提示“磁盘已满”,但/www目录下删光日志也没用?大概率你没搞清是哪个分区在告急。Linux 里/、/www、/var可能挂载在不同物理分区,df -h才是唯一可信的“体检报告”。
- 进宝塔【终端】,直接敲
df -h,盯住Use%列——超过 90% 的那行,记下它的Mounted on值(比如/或/www) - 别只看
/www;有些服务器把系统盘和网站盘分开,/dev/vdb1挂在/data,而你却在/www盲扫,纯属白忙 -
df不显示文件,只告诉你“地基塌了”,下一步才轮到找“哪栋楼最重”
du -sh + sort -hr 快速下钻定位大目录
从根或/www开始一层层查,比全盘扫描快十倍。关键不是“找所有大文件”,而是“砍掉最大分支”,快速收敛范围。
- 若
df -h显示/www占满,就执行:du -sh /www/* 2>/dev/null | sort -hr | head -10 - 输出里看到
/www/backup占 12G?马上跟进:du -sh /www/backup/* 2>/dev/null | sort -hr | head -10 - 注意
2>/dev/null:屏蔽权限拒绝报错,否则结果刷屏根本找不到有效数据 - 别跳过
/www/Recycle_bin——宝塔删文件只是移进去,不点【清空回收站】,空间一毛不放
find -size +100M 找出真正吃空间的单个文件
目录大小只是“表象”,最终得落到具体文件。尤其要防那些不显眼但动辄几 GB 的日志、数据库 dump、临时备份包。
- 在可疑目录下运行:
find /www -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr - 重点关注后缀:
.log(Nginx/PHP 错误日志)、.sql(未清理的 mysqldump)、.tar.gz(手动备份没删)、mysql-bin.000*(MySQL 二进制日志) - 特别警惕
/www/server/data/default.db:宝塔自己的 SQLite 数据库,长期运行后可能膨胀到十几 GB,但不能直接删,得进 SQLite 工具清空boce_list表再VACUUM - 执行
rm前,先ls -l确认路径,手抖输错一个字符删掉/www/wwwroot就不是清理,是事故
日志清理工具插件 vs 手动删 log,选哪个更稳?
手动删 /www/wwwlogs/*.log 很快,但容易漏掉 MySQL、宝塔面板自身、系统级日志;插件能归类识别,但默认策略偏保守。
- 装插件:宝塔【软件商店】搜“日志清理工具”,安装后点【立即扫描】,它会扫
/var/log、/www/wwwlogs、/www/server/panel/logs - 插件不会自动删,只标“可清理”,你得人工勾选——这点很关键,避免误清
secure或messages里刚发生的异常线索 - 对
nohup.out这种顽固日志,插件通常不碰,得手动清空:cat /dev/null > /root/nohup.out(比rm + touch更安全,不改 inode) - 插件清完记得刷新回收站,否则空间不释放——这点 80% 的人会忘
真正卡住人的从来不是命令记不住,而是删之前没确认文件归属、没查过是否被进程占用、删完忘了清回收站。尤其是 default.db 和 mysql-bin.* 这两类,看着像垃圾,实则是带状态的活数据,处理方式完全不同。

















