centos7使用imagemagick的convert命令压缩图片脚本

简介:

yum install ImageMagick

vi imagemagick

#!/bin/bash

#author:king

#time:20160725

#找出当前目录下大于20K的图片按照宽200,高随图片样式等比缩放,图片名称不变

find ./ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +20k -exec convert -resize 200x {} {} \;


参考:

本人管的一台阿里云服务器由于空间的带宽才只有1MB,图片一多,网站打开就慢,真是蛋疼啊,在不增加带宽的情况只有通过系统让图片更小,这样可以加快速度了,真是人穷就没办法啊。而且压缩图片还可以节省服务器空间,相必也是极好极好的。

安装imagemagick

1

yum install imagemagick

imagemagick的命令convert可以完成此任务,其参数-resize用来改变图片尺寸,可以直接指定像素值,也可以指定缩放百分比。而如果想降低图片的质量,可以用convert的-quality参数,质量值为0-100之间的数值,数字越大,质量越好,一般指定70-80,基本上看不出前后的差别。

我们首先要获取图片,自然find命令:

find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k


统计下数量可对:

find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k | wc -l


执行convert 压缩:

find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k -exec convert -resize 50%x50% {} {} \;


或者限定大小:

find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k -exec convert -resize 800x800 {} {} \;

convert 是会自动按照最大尺寸等比例进行缩小的。

用规则表达式把jpg和JPG后缀图片一网打尽,{}代表查找到的文件,这里没有改变convert前后的文件名,最后是转义的分号表示一个迭代的处理完成。


缩小图片质量为50:

convert -resize 800x800 -quality 50 1405407568-633.jpg 800.jpg

整合下命令我就不说了,呵呵。。。

加上shell脚本每天定时操作,哈哈,爽 的一塌糊涂。



追加配置:

先实现centos7本机目录同步,再对该目录下所有图片进行裁剪,然后写入crontab每秒运行,测试之后发现删除不能实现同步

vi copy.sh

rsync -vzrtopgu –progress /opt/king-picture/work/king-0.0.0.0-1111-picture.war-_picture-any-/webapp/uploads/ /opt/king-picture/work/king-0.0.0.0-1111-picture.war-_picture-any-/webapp/min/uploads


vi imagemagick

#!/bin/bash

find /opt/king-picture/work/king-0.0.0.0-1111-picture.war-_picture-any-/webapp/min/uploads/ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +20k -exec convert -resize 200x {} {} \;


crontab -e

* * * * * sleep 1; /opt/copy.sh

* * * * * sleep 3; /opt/imagemagick



本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1829959,如需转载请自行联系原作者

相关文章
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
1102 17
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
2363 25
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
509 5
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
443 4
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
713 3
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
1832 25
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
804 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
1206 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
Linux
centos如何压缩zip
使用zip工具在CentOS上压缩文件和目录非常简单且高效。通过灵活使用zip命令的各种选项,可以满足不同的压缩需求,包括设置压缩级别、排除特定文件以及更新现有zip文件。希望本文提供的详细步骤和示例能帮助您更好地理解和应用zip工具进行文件压缩管理。
1175 4
|
安全 Linux 网络安全
centos7中firewall防火墙的常用命令总结
以上命令集覆盖了 `firewalld`的基本操作,是维护CentOS 7系统安全不可或缺的工具。对于更高级的配置需求或遇到特定问题
840 3