小皮面板磁盘空间满了该如何清理

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 11:03 ·2 浏览 ·0 回复

照着这篇文章做完,你能在不误删数据库和站点文件的前提下,从被塞满的小皮面板服务器上腾出几个 GB 甚至几十 GB 空间,并知道怎么防止它再被撑满。

第一步:先确认到底是哪个目录吃掉了空间

这一步的目标是找出「谁在占地方」,而不是上来就瞎删。SSH 登录服务器后先跑:

df -h

看哪个分区 Use% 到了 90% 以上,通常是 / 或 /www。接着逐层往下钻:

du -sh /www/* | sort -rh | head -20

排在前面的目录就是元凶。Windows 版的小皮面板(phpStudy)则打开「此电脑」,在 C:\phpstudy_pro 上右键 → 属性,看占用;想看得更细可以装个免费的 WizTree 或 TreeSize Free 扫一遍。

注意:先看再删。小皮面板的站点目录 /www/wwwroot 里放的是你的程序文件,删了站点就直接挂掉,不在清理范围内。

第二步:清网站访问日志(最常见的元凶)

Nginx/Apache 的访问日志会随着爬虫和扫描请求无限增长,单个 xxx.log 涨到十几 GB 很常见,默认位置在 /www/wwwlogs/。

面板操作路径:登录小皮面板 → 左侧菜单「网站」→ 点击对应站点 → 在站点信息里找到「日志」按钮 → 选择清空。命令行则用:

truncate -s 0 /www/wwwlogs/你的域名.log

注意:不要用 rm 删除正在被 Nginx 写入的日志文件。文件被删掉了,但进程还握着句柄,磁盘空间不会释放,df -h 还是满的。必须用 truncate -s 0 清空内容。

第三步:清 MySQL 的 binlog 日志

MySQL 的二进制日志在数据目录下,文件名形如 mysql-bin.000001,长期不清理能占几十 GB。登录数据库:

mysql -uroot -p

执行:

SHOW BINARY LOGS;
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);

Linux 版数据目录一般是 /www/server/data,Windows 版在 C:\phpstudy_pro\Extensions\MySQL5.7.26\data。

注意:绝对不要直接 rm mysql-bin.0000xx,这会让 MySQL 启动或主从复制报错。只能通过上面的 SQL 命令删。

要一劳永逸,编辑 my.cnf(Windows 是 my.ini),在 [mysqld] 段加一行:

expire_logs_days = 7

MySQL 8.0 改用 binlog_expire_logs_seconds = 604800,改完重启 MySQL 生效。

第四步:删掉过期的备份文件

面板的自动备份会不断累积。Linux 版备份一般在 /www/backup/,里面有 database、site 子目录。面板里进入「数据库」或「网站」→ 找到对应条目的「备份」列表 → 把几天前甚至几个月前的备份删掉,只留最近 1~2 份。Windows 版在 C:\phpstudy_pro\WWW\backup 或你自定义的备份目录。

第五步:清面板自身日志与临时文件

小皮面板自己的运行日志也会堆积,位置在 /www/server/panel/logs,可以直接清空里面的 .log 文件。系统临时目录 /tmp 里超过 7 天的临时文件也可以清:

find /tmp -type f -mtime +7 -delete

Windows 版额外清一下 C:\Windows\Temp 和 C:\Users\你的用户名\AppData\Local\Temp。

注意:/tmp 里如果有正在运行的程序用的 socket 文件,删了可能导致服务异常。稳妥做法是重启服务器后再清。

第六步:防止再次被撑满(关键一步)

清完只是治标,得让它别再涨回来。在面板左侧「计划任务」→ 新建任务,类型选「Shell 脚本」,执行周期设为每天凌晨 3 点,脚本内容:

find /www/wwwlogs -name "*.log" -mtime +7 -exec truncate -s 0 {} \;
find /tmp -type f -mtime +7 -delete

Windows 版可以用「任务计划程序」创建每日任务,调用 PowerShell 脚本清理站点目录下的 logs 文件夹。

如果你用的是云服务器,再去云厂商控制台给磁盘使用率设个 85% 的告警,满了能第一时间收到短信。

小结

  • 先 df -h + du -sh 定位,再动手删,顺序不能反
  • 日志清理用 truncate -s 0,不要 rm 正在写入的文件
  • MySQL binlog 只能用 PURGE BINARY LOGS 删,并在配置里设过期天数
  • 备份文件保留最近 1~2 份,旧的定期删
  • 用面板「计划任务」每天自动清 7 天前的日志,才能一劳永逸
版权声明:本文来自 GJ站长论坛《小皮面板磁盘空间满了该如何清理》
原文链接:https://www.gj0.com/thread-916.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~