学校某学院的网站,上传的图片都很大,一般都是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。