小皮面板磁盘空间满了该如何清理
照着这篇文章做完,你能在不误删数据库和站点文件的前提下,从被塞满的小皮面板服务器上腾出几个 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 天前的日志,才能一劳永逸
原文链接:https://www.gj0.com/thread-916.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。