需求说明:
线上之前使用的图片没有经过处理,比较大。应产品同事要求,将图片拿出来处理后再替换之前的图片,图片名不变。

/tmp/image目录下存放的修改后的图片
[root@kevin_web1 ~]# ls -l /tmp/image|head -10

total 66376
-rw-r--r-- 1 root root  114118 Jan 18 17:26 201407281934401406547280.jpg
-rw-r--r-- 1 root root  110450 Jan 18 17:26 201407281934511406547291.jpg
-rw-r--r-- 1 root root  156443 Jan 18 17:26 201407281937341406547454.jpg
-rw-r--r-- 1 root root   89006 Jan 18 17:26 201407281938241406547504.jpg
-rw-r--r-- 1 root root  136594 Jan 18 17:26 201407281938341406547514.jpg
-rw-r--r-- 1 root root   74327 Jan 18 17:26 201407281938551406547535.jpg
-rw-r--r-- 1 root root  114118 Jan 18 17:26 201407281940071406547607.jpg
-rw-r--r-- 1 root root  110450 Jan 18 17:26 201407281940161406547616.jpg
-rw-r--r-- 1 root root  105628 Jan 18 17:26 201407281940241406547624.jpg

线上图片存放的路径是/var/www/vhosts/www.kevin.com/main/upload/,修改后的图片都有存放到这里
比如:注意find命令中的目标目录后面一定要加上/(比如下面的.../upload/,不能写成.../upload,否则查找不到)

[root@kevin_web1 ~]#  find /var/www/vhosts/www.kevin.com/main/upload/ -name 201407281934401406547280.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281934401406547280.jpg
[root@kevin_web1 ~]#  find /var/www/vhosts/www.kevin.com/main/upload -name 201407281934401406547280.jpg
[root@kevin_web1 ~]# 

那么修改后的图片批量替换之前的图片的脚本如下:

#!/bin/bash
for m in `ls -l /tmp/image|awk -F" " '{print $9}'`
dofor i in `cat /tmp/b.txt`do for n in `ls "$i"|awk -F"/" '{print $9}'`doif [ $m == $n ];then\cp -f /tmp/image/$m  `cat /tmp/b.txt|grep "$m"`elseecho "123" > /dev/null 2>&1fidonedone
done

脚本解刨如下:

[root@kevin_web1 ~]# ls -l /tmp/image|awk -F" " '{print $9}'|head -10

201407281934401406547280.jpg
201407281934511406547291.jpg
201407281937341406547454.jpg
201407281938241406547504.jpg
201407281938341406547514.jpg
201407281938551406547535.jpg
201407281940071406547607.jpg
201407281940161406547616.jpg
201407281940241406547624.jpg

[root@kevin_web1 ~]# for i in $(ls -l /tmp/image|awk -F" " '{print $9}');do echo `find /var/www/vhosts/www.kevin.com/main/upload/ -name "$i"` >> /tmp/b.txt;done
[root@kevin_web1 ~]# cat /tmp/b.txt |head -10

/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281934401406547280.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281934511406547291.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281937341406547454.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281938241406547504.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281938341406547514.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281938551406547535.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281940071406547607.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281940161406547616.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281940241406547624.jpg
/var/www/vhosts/www.kevin.com/main/upload/20140813/201408131047131407898033.jpg

[root@kevin_web1 ~]# ls /var/www/vhosts/www.kevin.com/main/upload/20140728/201407281934401406547280.jpg |awk -F"/" '{print $9}'

201407281934401406547280.jpg

[root@kevin_web1 ~]# cat /tmp/b.txt |grep 201407281934401406547280.jpg

/var/www/vhosts/www.kevin.com/main/upload/20140728/201407281934401406547280.jpg

转载于:https://www.cnblogs.com/kevingrace/p/6298022.html

线上图片批量更换脚本记录相关推荐

  1. 线上使用zabbix报警脚本(含图片)

    分享一个线上使用的自定义zabbix报警脚本,脚本思路大致如下: 1.使用爬虫获取报警图片(前提是要获得报警的item) 2.将图片与邮件内容整合 3.发送邮件 4.日志记录 脚本内容如下: #!/u ...

  2. 【记录】Adobe AI CC 图片批量描摹脚本

    Adobe AI CC 图片批量描摹(批量转换为SVG)脚本 三种描摹预设: 批量描摹脚本 /*By Blackkitty 20170923将图像分别描摹为预设的黑白,灰度,16色三种svg并保存黑白 ...

  3. uniapp实现canvas制作微信小程序海报,线上图片

    先看下效果图 生成海报后,点击保存到相册,会调起请求权限,是否同学调用我们的相册,允许之后,这张海报就会自动存入我们的相册 具体实现: <view class='canvas-box' v-sh ...

  4. 批量替换_【脚本】AE照片墙模板图片批量替换脚本Multi Replacer

    今天给大家分享的这个资源是AE中非常高效批量替换图片的插件. 他就是了Multi Replacer,这是一款AE的批量图片替换脚本(应用场合最多的就是大批量替换图片.而照片墙效果最能体现信息量的庞大, ...

  5. 上传图片为线上图片,可以在线访问

    如果我们想要把图片放到网络上,并且可以通过正常的网络地址访问并查看到该图片,以下推荐一个网站 https://imgtg.com/ 点击中间的点击上传拖入图片,或者选择你的图片地址即可  接下就是一系 ...

  6. OPENCV图片批量更换文字

    团支书最头疼的事情莫过于假期收截图,例如当前的"暑假十课",总有人久催不交 看这图片上交的模板,通过改变右上角名字就能做到偷天换日,那么一个班近30,十课一共300张图片,人工肯定 ...

  7. react 富文本编辑中插入线上图片

    //清空clearContent = () => {this.setState({editorState: ContentUtils.clear(this.state.editorState)} ...

  8. 线上SQL脚本执行错了出事之后互相甩锅怎么办?

    平常我们线上执行的SQL脚本都是很粗犷的.呼叫一下DBA或者运维,把脚本发过去,然后告诉他在哪个环境执行.然后双方沟通不畅,测试环境的脚本执行到生产了!脚本写的有问题执行错了却没有回滚脚本!或者每个人 ...

  9. Java 线上惨痛踩坑记录,你也一定遇到过

    线上问题年年有,今年特别多.记几次线上惨痛的踩坑记录,希望大家以史为鉴. 1. 包装类型自动解箱导致空指针异常 public int getId() { Integer id = null; retu ...

最新文章

  1. Linux那些事儿 之 戏说USB(31)驱动的生命线(三)
  2. python语法错误概述_python语法错误
  3. Zabbix poller processes more than 75% busy
  4. code vs 把所有行拼接成一行_关于SQL Server将一列的多行内容拼接成一行的问题讨论...
  5. linux安装字体时找不到mkfontscale、mkfontdir
  6. python中的孤儿进程
  7. 中高级前端面试秘籍!金三银四如何直通大厂?!(长文)
  8. 第六天:对项目后端日志存储
  9. 结构设计到项目管理:工程师是怎么练成的.
  10. SYN报文什么时候会被丢弃?
  11. 常用的基础英文字体推荐
  12. openpyxl 打开大文件很慢_解决python执行较大excel文件openpyxl慢问题
  13. Unity3D U3D安装教程
  14. 某乎x-zse-96、x-zst-81最新通杀方案
  15. 内核辅助函数系列 001 --- __ffs(unsigned long word):第一个非 0 位
  16. 阿里研究院花几年心得终成趣谈网络协议,附技术官讲解
  17. 自动驾驶 | SIL测试简单介绍
  18. webm进度条和修复问题
  19. java版b2b2c o2o 多租户多商家电子商务之(首页登录界面动态配置)SpringCloud SpringBoot Mybatis Uniapp 分布式商城源码 电子商务源码 社交电商 直播带货
  20. Mysql全套看这一篇就够了特别详细

热门文章

  1. 【MFC】滚动字幕的状态栏
  2. 【Linux网络编程】TCP编程
  3. 【Linux】一步一步学Linux——compress命令(了解)(71)
  4. pro android学习笔记,Pro Android学习笔记(六八):HTTP服务(2):HTTP POST-Go语言中文社区...
  5. linux课程_linux系统使用课程更新提示
  6. Apache Web Server - httpd 的虚拟主机的配置
  7. 计算机论文指导书,计算机毕业论文指导书.doc
  8. GetOpenFileName的简单使用实例
  9. 两个字符串的删除操作
  10. matlab的讲稿ppt,Matlab初步(讲稿200508)之四