为了实现项目中图片资源上传后,可以自动等比压缩,以加快用户访问速度,发现了此项技术Inotify,关于此项技术的具体介绍,这里不再啰嗦,百度一搜有很多介绍。

这里举单例介绍了Inotifywait的使用

vi /tmp/monitor_jpg.sh
#!/bin/bash
export LANG=C
inotifywait -mrq --event create,modify /data/jpg | while read event
do
newfile=`ls -ltc /data/jpg | grep -v total | head -n 1 | awk '{print $9}'`
convert -quality 25% /data/jpg/$newfile /data/conjpg/$newfile
done
#wq保存退出
#权限更改,并放入后台进程
chmod 700 monitor_jjpg.sh
nohup /bin/bash /tmp/monitor_jpg.sh &


以上脚本的目的是,当监控到/data/jpg目录内有图片被改动或者创建时(根据文件修改或创建时间触发事件),将使用Imagemagick软件对图片进行等比压缩(大约压缩1/3大小)到目录/data/conjpg/目录中,以同名文件进行保存。

在网站需要引用到图片的时候,就可以引用/data/conjpg里面的图片,大量节省网络带宽资源。

关于Inotify功能,此处用于的只是冰山一脚,合理的使用,也可以实现项目的自动化发布与回滚,而不再人工参与发布过程