批量清理网站垃圾图片释放服务器磁盘空间的完整实操指南

网站运行一段时间后,上传目录里经常堆积大量不再引用的图片、旧缩略图和超过实际尺寸的原图,这些垃圾图片会逐步占满服务器磁盘空间。
批量清理网站垃圾图片释放服务器磁盘空间的安全思路是:先用 dufind 定位大文件与过期文件,再用脚本或面板工具删除,删除前必须备份并确认图片没有被页面引用。
本文给出一条零基础用户也能直接执行的清理路径,同时说明如何避开误删风险。

先找出哪些图片属于垃圾图片

垃圾图片通常有三种来源:未使用的历史文章配图被反复生成的缩略图大小明显异常的原图备份
建议按目录大小入手,先定位占用最多的目录。

# 查看站点根目录下各目录的磁盘占用
du -sh /www/wwwroot/你的站点/* | sort -rh | head -20

执行后会看到类似 /www/wwwroot/你的站点/wp-content/uploads 的目录占用高,说明重点清理对象就在里面。
接着按文件大小筛选图片,找出超过 1M 的 JPG、PNG 文件:

find /www/wwwroot/你的站点 -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.gif" \) -size +1M -exec ls -lh {} \;

同时可以按时间筛选,比如找出 6 个月前没有被改动过的图片,这类图片通常是历史遗留垃圾:

find /www/wwwroot/你的站点 -type f \( -name "*.jpg" -o -name "*.png" \) -mtime +180 -exec ls -lh {} \;

批量删除图片的两个落地方法

方法一:命令行安全批量删除

不要直接 -delete,先移动到一个待删除目录,观察几天再清空。 在站点父目录下建一个 _trash 目录,然后把筛选出的图片移动进去:

mkdir -p /www/wwwroot/_trash
find /www/wwwroot/你的站点 -type f -size +5M \( -name "*.jpg" -o -name "*.png" \) -exec mv {} /www/wwwroot/_trash/ \;

确认站点页面访问正常、没有报错后,再清空回收目录:

rm -rf /www/wwwroot/_trash/*

如果还是想用删除命令,建议用 -ok 交互确认每一份文件,避免误删:

find /www/wwwroot/你的站点 -type f -name "*.jpg" -size +10M -ok rm {} \;

方法二:宝塔面板可视化清理

如果你使用的是宝塔面板,可以进入 文件站点根目录 → 找到 uploadswp-content/uploads 目录。
点击右上角的“扫描”,面板会按文件大小排序。
勾选明显不需要的图片文件,点击 删除 或者 移动到回收站 即可。
建议先移入回收站,保留一段时间再彻底清除。

避坑:这些图片千万不要乱删

批量清理图片最容易踩的坑就是删除正在被页面引用的资源,结果导致前台裂图。
删除前务必做三个确认:

  1. 确认图片来源:从备份目录、临时目录、缓存目录里筛选出来的图片,多半可以安全清理。直接放在文章上传目录里的图片,先搜一下文件名是否出现在数据库或静态文件里。
  2. 保留动态裁剪缩略图:如果你的主题或插件会自动生成 -150x150.jpg 这类缩略图,删除后原样尺寸图片会重新生成,反而增加服务器负载。建议只清超过 2 年未使用的缩略图。
  3. 提前备份数据库和图片目录:至少对图片目录做一次压缩备份,放到站点目录之外,例如 /home/backup/img-backup.tar.gz
tar -czf /home/backup/img-backup.tar.gz /www/wwwroot/你的站点/wp-content/uploads

清理后验证磁盘空间是否真的释放

完成删除后,先用 df -h 查看分区使用率变化,再对比站点目录体积:

df -h
du -sh /www/wwwroot/你的站点/wp-content/uploads

如果你发现清理后空间并没有明显减少,通常是因为网站进程还在占用被删除的文件,比如 PHP-FPM 或 Nginx 打开了旧文件。
重启服务即可彻底释放:

service php-fpm reload
service nginx reload

之后可以在 crontab 中加一条定期清理任务,例如每季度清理一次超过 6 个月且超过 5M 的图片:

0 3 1 */3 * find /www/wwwroot/你的站点 -type f \( -name "*.jpg" -o -name "*.png" \) -size +5M -mtime +180 -exec mv {} /www/wwwroot/_trash/ \;

关于批量清理图片的四个高频疑问

如何找出网站里超过 1M 的图片?

使用 find /网站目录 -type f -size +1M \( -name "*.jpg" -o -name "*.png" \) -exec ls -lh {} \; 即可列出所有大于 1M 的图片,
同时显示路径和大小。

使用 find 的 -delete 命令安全吗?

不一定安全-delete 会直接移除文件,一旦误删无法通过回收站恢复。
更稳妥的做法是先用 -exec mv 移动到临时目录,确认无误后再清空。

网站图片可以全部删除吗?

不能。
图片目录中可能包含文章正文引用的配图、页面背景图以及插件必需素材。
全部删除会导致网站前端大量裂图,并影响加载速度和服务体验。

清理图片后磁盘空间没有变化怎么办?

先使用 lsof | grep deleted 查看是否有进程占用了已删除文件,然后重启 PHP-FPM / Nginx / Apache 释放句柄。
另外,若在宝塔面板用回收站功能删除,需要再清空回收站才算真正释放空间。

如果你正在处理批量清理网站垃圾图片释放服务器磁盘空间的问题,建议先按本文的“移动再删除”流程完整执行一遍,再根据自己站点目录情况调整筛选条件。
清理期间遇到权限不足或命令报错时,回头检查路径是否写错、目录是否存在,以及运行命令的用户是否有读取和删除权限。
如果操作对象是生产环境且图片数量极多,可以联系你的服务器服务商或运维支持确认磁盘 IO 状况,避免清理过程影响网站正常访问。

分享到:
上一篇
Nginx防盗链规则保护产品原图防止盗用
下一篇
规范robots屏蔽垃圾爬虫恢复搜索引擎收录量
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意