> Linux教程 > 系统运维 >

为uploads文件夹瘦身

学校某学院的网站,上传的图片都很大,一般都是2M左右,甚至还有10M的。估计是使用了比较好的相机拍摄的。而且不知道什么原因,总有一些重名的图片,大小都一样,只是名字有(1),(2)之分。存放图片的uploads文件夹,总共有2G多。每次备份,都要占用很多时间,在服务器上也很占空间。

下面通过两个步骤,来为uploads瘦身。

第一步:删除重复的文件。

网站引用这些文件,都是在新闻中直接存储文件的全路径。只要把文件名遍历一遍,如果在数据库导出的sql文件中没有出现,就直接删掉。剩下的就是正在使用的图片。

编写脚本:

#!/bin/bash
for i in ./uploads/*
do
  grep -q "$i" a.sql
  if [ $? -ne 0 ];then
    rm -f "$i"
  fi
done

要注意,有些文件名是带有空格的,必须用引号把$i括起来。

经过这一步处理,原来2.2G的文件夹变成了1.4G。少了800M。

 

第二步:对大图片进行质量压缩。

因为图片大小不方便进行缩放,只能对图片质量进行压缩了。网站上2M的图片,即便压缩到30%,其实显示起来,和原来也没有什么明显不同。毕竟原图片质量太高了。要对图片进行处理,需要安装imageMagick。直接在centos上用软件管理器进行安装即可。

安装好了之后,可以执行以下脚本:

#!/bin/bash
for i in ./uploads/*
do
  convert -quality 30 "$i" "$i"_resized.jpg
  rm "$i"
  mv "$i"_resized.jpg "$i"
done

 

最后,uploads只剩下了233M。

(责任编辑:IT)