• 网站程序文件增量更新脚本


    说明:

    功能:原文件更新,新文件加入,此脚本暂时不支持新增目录加入

    upload目录和web目录是同级的 他们下面的目录级别也是一样的,这点要注意

    [root@tzp ~]# ls upload/images/main/
    logo.png  qrcode.png

    [root@tzp ~]# ls web/images/main/
    footphone.png  loading1.gif  logo2.png  logo.png       qrcodedy.jpg  qrcodefw.jpg  qrcode.png   verify2.png  verifyicon.png
    hxbanner.png   loading.gif   logo3.png  qrcodeapp.png  qrcodedy.png  qrcodefw.png  verify1.png  verify3.png  zhili.png

    #!/bin/bash

    upname=upload
    ywjname=web #项目目录名
    upload=/root/upload #更新项目文件目录
    ywj=/root/web #项目地址
    backup=/root/backup #项目备份存放目录
    #sshpass -p "$password" ssh  -t hladmin@"$ipp"  "cd ~;/bin/sh "$project".sh shutdown"
    #/data/tomcat-web/bin/shutdown.sh
    #备份源文件
    cp -r "$ywj" /root/backup/web_`date +%Y%m%d`
    #过滤掉中文名称
    china=$(ls -l -R "$upload"|grep -vE 'drw|upload|用量|^$'|awk -F' ' '{print $9}'|sed 's/[a-zA-Z0-9[:punct:]]//g' | grep -v '^$')
    gl=`echo $china|sed 's# #|#g'`

    for filename in `ls -l -R "$upload"|grep -vE 'drw|upload|用量|^$'|awk -F' ' '{print $9}'|grep -vE "$gl"|sort|uniq -c|awk -F' ' '{print $2}'|grep -v $(ls -l $upload|grep -v drw|awk '{print $9}'|grep -v ^$)`;do
    #uploadurl=
    double=$(find $upload -name "$filename"|wc -l)
    doubley=$(find $ywj -name "$filename"|wc -l)

      if [ "$double" -gt 1 ];then
      echo 2
        for dfile in `seq $double`;do
          uploadurl=$(find $upload -name "$filename"|sed -n "$dfile"p)
          echo $uploadurl
          echo '==========2============'
          ywjurl=`find $ywj -name "$filename"|grep "$ywjname"'/'$(echo "$uploadurl"|sed -r 's#(/[^/]*){2}/(.*)/[^/]*$#2#')'/'"$filename"`
          echo '#update'
          cp -r  $uploadurl $ywjurl
          echo ' '
        done
     
       elif [ "$doubley" -eq 0 ];then
         echo $filename
         uploadurl=$(find $upload -name "$filename")
         echo $uploadurl
         echo '===============1========='
         #echo 新文件
         cp -r $uploadurl  "$ywj"'/'"$(find $upload -name "$filename"|cut -d'/' -f4-)"
     
       elif [ "$double" -eq 1 ];then
         echo 1
         uploadurl=$(find $upload -name "$filename")
         echo $uploadurl
         echo '===============1========='
         #echo 源文件
          ywjurl=`find $ywj -name "$filename"|grep "$ywjname"'/'$(echo "$uploadurl"|sed -r 's#(/[^/]*){2}/(.*)/[^/]*$#2#')'/'"$filename"`
          echo '#update'
          cp -r  $uploadurl $ywjurl
         echo ' '
      fi
    done
    #/data/tomcat-web/bin/startup.sh

    注:脚本要用在正式环境中要改几个地方

    tomcat关闭和启动行,更新行把echo去掉

    运行测试结果:

    [root@tzp ~]# sh sinn.sh
    1
    /root/upload/images/newer/banner.png
    ===============1=========
    #update
    cp -r  /root/upload/images/newer/banner.png /root/web/images/newer/banner.png
     
    1
    /root/upload/images/product/bar.png
    ===============1=========
    #update
    cp -r  /root/upload/images/product/bar.png /root/web/images/product/bar.png
     
    1
    /root/upload/lib/My97DatePicker/calendar.js
    ===============1=========
    #update
    cp -r  /root/upload/lib/My97DatePicker/calendar.js /root/web/lib/My97DatePicker/calendar.js
     
    1
    /root/upload/lib/My97DatePicker/lang/en.js
    ===============1=========
    #update
    cp -r  /root/upload/lib/My97DatePicker/lang/en.js /root/web/lib/My97DatePicker/lang/en.js
     
    1
    /root/upload/images/newer/hz1.png
    ===============1=========
    #update
    cp -r  /root/upload/images/newer/hz1.png /root/web/images/newer/hz1.png
     
    1
    /root/upload/lib/fullpage/jquery.fullPage.css
    ===============1=========
    #update
    cp -r  /root/upload/lib/fullpage/jquery.fullPage.css /root/web/lib/fullpage/jquery.fullPage.css
     
    1
    /root/upload/lib/fullpage/jquery.fullPage.min.js
    ===============1=========
    #update
    cp -r  /root/upload/lib/fullpage/jquery.fullPage.min.js /root/web/lib/fullpage/jquery.fullPage.min.js
     
    1
    /root/upload/lib/layer/mobile/need/layer.css
    ===============1=========
    #update
    cp -r  /root/upload/lib/layer/mobile/need/layer.css /root/web/lib/layer/mobile/need/layer.css
     
    2
    /root/upload/lib/layer/layer.js
    ==========2============
    #update
    /root/web/lib/layer/layer.js
    cp -r  /root/upload/lib/layer/layer.js /root/web/lib/layer/layer.js
     
    /root/upload/lib/layer/mobile/layer.js
    ==========2============
    #update
    /root/web/lib/layer/mobile/layer.js
    cp -r  /root/upload/lib/layer/mobile/layer.js /root/web/lib/layer/mobile/layer.js
     
    1
    /root/upload/images/main/logo.png
    ===============1=========
    #update
    cp -r  /root/upload/images/main/logo.png /root/web/images/main/logo.png
     
    1
    /root/upload/images/product/product_detail_bg.png
    ===============1=========
    #update
    cp -r  /root/upload/images/product/product_detail_bg.png /root/web/images/product/product_detail_bg.png
     
    1
    /root/upload/images/main/qrcode.png
    ===============1=========
    #update
    cp -r  /root/upload/images/main/qrcode.png /root/web/images/main/qrcode.png
     
    1
    /root/upload/images/product/security_guarantee.png
    ===============1=========
    #update
    cp -r  /root/upload/images/product/security_guarantee.png /root/web/images/product/security_guarantee.png

    总结:

    基本上能完成了增量更新,脚本是单线程,有待改进成多线程的!提高 更新速度。另外脚本对于新加的文件或者目录没有做到更新进去,有待改善。666加油。

  • 相关阅读:
    Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException
    idea 设置svn忽略 .idea内的文件
    使用JDBC连接MySql时出现:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration
    问题:SpringBoot访问不到Controller
    JAVA 并发编程-多个线程之间共享数据
    Data时间格式化
    wow.js中各种特效对应的类名(滚动效果)
    [从零开始搭网站七]CentOS上安装Mysql
    [从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书
    [从零开始搭网站五]http网站Tomcat配置web.xml和server.xml
  • 原文地址:https://www.cnblogs.com/hmysql/p/8329035.html
Copyright © 2020-2023  润新知