批量清理网站垃圾图片释放磁盘空间

网站跑着跑着磁盘就红了,登录面板一看,多半是被上传的图片、旧缩略图和备份截图塞满了。
手动一张张删不现实,直接用 rm 又怕删错。
这篇文章会告诉你如何安全、批量地清理网站中的垃圾图片,立竿见虎地释放磁盘空间。

动手前先摸清敌情:哪些图片能删

别急着执行命令,先登录服务器或面板,确认以下三点:

  1. 磁盘占用情况。执行 df -h 查看哪个分区已用比例高,通常 //www 是网站目录所在。
  2. 大图集中在哪。用 du -sh /www/wwwroot/*/wp-content/uploads/ 这种命令按项目查,或者直接在宝塔「文件」里看目录大小。
  3. 判断哪些可以删。以下几类图片基本是安全的清理对象:
  • 从未被引用过的旧上传(比如几年前的文章已删除但图片还在);
  • 主题或插件生成的缩略图(名称通常带 -150x150-300x200 等尺寸后缀);
  • 重复的备份截图、无效的日志截图;
  • 超过一定天数未访问的临时缓存图片。

如果你用 WordPress,还可以用插件扫描未使用的媒体文件,但为了通用性,这里讲纯命令和面板法。

批量清理:一屏命令搞定海量垃圾图

方法一:按时间清理(适用于旧图片堆积)

例如删除 /www/wwwroot/example.com/wp-content/uploads/ 目录下 180天前 的所有图片:

find /www/wwwroot/example.com/wp-content/uploads/ -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" -o -name "*.webp" \) -mtime +180 -delete

参数说明

  • -type f 只找文件;
  • \( ... \) 组合多个扩展名条件;
  • -mtime +180 表示修改时间超过 180 天;
  • -delete 直接删除。强烈建议先去掉 -delete 跑一遍预览,确认结果没问题再加 -delete

方法二:按尺寸清理(适用于超大图)

有些站长允许上传几 MB 的图片,访问量一上来磁盘就崩。
删除大于 1MB 的图片:

find /www/wwwroot/example.com/ -type f \( -name "*.jpg" -o -name "*.png" \) -size +1M -delete

同样先预览:find ... -size +1M -exec ls -lh {} \; 看看都有哪些。

方法三:批量删除带尺寸后缀的缩略图(安全高效)

WordPress 等程序会自动生成 -150x150.jpg-300x200.jpg 等副本,原始图还在的话,这些副本可以放心删。
执行:

find /www/wwwroot/example.com/wp-content/uploads/ -type f -name "*-[0-9]*x[0-9]*.jpg" -o -name "*-[0-9]*x[0-9]*.png" | xargs rm -f

面板用户操作路径:宝塔批量删除

如果你用宝塔 Linux 面板:

  1. 登录面板,左侧点「文件」。
  2. 导航到 www/wwwroot/你的站点/wp-content/uploads/ 等目录。
  3. 右上角搜索框输入 *.jpg*.png,勾选显示结果后点击「批量操作」→「删除」。
  4. 如果要按时间筛选,可以先用查找功能(顶部「搜索」)设置文件修改时间范围,再批量操作。

宝塔本身不提供按尺寸或按时间过滤的批量删除,建议用 find 命令更灵活。

清完千万别忘的两件事

1. 检查网站是否正常

重点刷新文章详情页、缩略图列表、首页。
如果发现图片裂了,说明误删了原始图,赶紧从回收站恢复(宝塔自带回收站,find 命令也可以先移到 /tmp/ 而不是直接删)。

2. 验证磁盘占用

执行 df -h 再次查看,或宝塔面板首页看磁盘图表。
如果释放空间不理想,可能是日志、数据库或备份文件更大,需要另外处理。

高频问题解答

Q:删了图片但磁盘空间没变少?
A:可能是有进程还在占用已删除的文件(比如 Nginx 缓存了旧图片)。执行 lsof +L1 找出未释放的文件句柄,然后重启 Nginx 或 PHP-FPM:systemctl restart nginx php-fpm

Q:能不能只删未引用的图片?
A:纯命令法不能智能判断引用关系。建议先用 grep 配合文章数据库导出检查,或者用 WordPress 插件如「Media Cleaner」扫描。本文的方法适合清理明显无用的旧图或缩略图。

Q:删完后变成 404 怎么办?
A:如果只是缩略图变 404,原始图还在,可以删掉缩略图后重新生成(用 Regenerate Thumbnails 插件)。如果原始图没了,从备份恢复或重新上传。

写在最后

批量清理图片是释放磁盘空间最快的手段之一,但务必先预览再执行。
养成定期检查 wp-content/uploads 的习惯,设置上传限制(如限制最大文件尺寸)可以从源头减缓占用。
如果你也在处理服务器磁盘告警,按本文步骤走一遍,几分钟就能看到明显效果。

分享到:
上一篇
慢日志批量优化数据库查询卡顿问题
下一篇
内存爆满一键清理缓存释放资源脚本
1
系统公告

机房迁移升级通知

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