博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat pool 发布脚本
阅读量:6158 次
发布时间:2019-06-21

本文共 4028 字,大约阅读时间需要 13 分钟。

首先这边是乙方,项目多,系统多。新上线的项目都是脚本去做发布,早上又赶了套脚本。

之前公司有兄弟运行了下面这套脚本未加参数,说静态资源未发成功,tomcat 和发布系统的agent反而给干没了,于是又做了点优化,加了参数判断。

$ cat copy_h5_mall_new.sh #!/bin/sh#copy h5 mallnginx_static_ip=10.10.13.37time_stamp=`date +"%Y-%m-%d-%H-%M-%S"`h5_mall_zip_name=$1war_md5=`md5sum ../static/${h5_mall_zip_name} | awk '{print $1}'`md5_file=`cat ../static/${h5_mall_zip_name}.md5 | awk '{print $1}'`if [ $# -ne "1" ];then    echo "不看脚本就运行,干死你!"else    if [ "${war_md5}" = "${md5_file}" ];then        ssh ${nginx_static_ip} "cp -r /data/desheng/h5_mall /data/desheng/h5_mall-${time_stamp}"        ssh ${nginx_static_ip} "cd /data/desheng/h5_mall && /bin/rm -rf *"        scp ../static/${h5_mall_zip_name} ${nginx_static_ip}:/data/desheng/h5_mall        ssh ${nginx_static_ip} "cd /data/desheng/h5_mall && unzip ${h5_mall_zip_name}"        ip_list=`cat ../env.sh | grep "frontier-cms-web" | cut -d "=" -f1 | cut -d "#" -f2 | uniq`        for ip in ${ip_list[*]};do            ssh $ip "cd /data/static/10 && cp -r h5_mall h5_mall-${time_stamp}"            ssh $ip "cd /data/static/10/h5_mall && /bin/rm -rf *"            scp ../static/${h5_mall_zip_name} $ip:/data/static/10/h5_mall/            ssh $ip "cd /data/static/10/h5_mall && unzip ${h5_mall_zip_name}"        done    fifi

#这个脚本早上临时做的,发现这个静态资源还没有脚本发布。脚本主要对参数和运行脚本的用户做了判断。

$ cat copy_cms_static.sh #!/bin/bashwar=$1nginx_static_ip=10.10.1.28temp_time=`date +%Y-%m-%d-%H-%M-%S`if [ `whoami` == "ody" ];then    if [ $# -ne "1" ];then        echo -n "输入的参数不对,请重新输入."    else        ssh ${nginx_static_ip} "cd /data/stgds/ && cp -r cms_dev{,-${temp_time}}"        ssh ${nginx_static_ip} "cd /data/stgds/cms_dev/ && /bin/rm -rf ./*"        scp ../static/${war} ${nginx_static_ip}:/data/stgds/cms_dev/        ssh ${nginx_static_ip} "cd /data/stgds/cms_dev/ && unzip ${war}"    fielse    echo -n "当前用户不是ody用户."fi

下面是新项目一套发布脚本,昨天改的,运行一天还未见报错、未见发布失败的。

war包发布的脚本:

# cat deploy_new.sh #!/bin/shread -p "请输入你需要发布的Poll Name:" pool_nameif [ "$pool_name" = "" ];then    echo "pool_name 不支持为空!"else    product_ip_list=`cat ./deploy_env.ini | grep ${pool_name} | awk -F '=' '{print $2}'`    time_stamp=`date +"%Y-%m-%d-%H-%M-%S"`    function shutdown_tomcat() {        ip=$1    tomcat_port=8080    tomcat_id=`ssh ody@$ip ps -ef | grep java | grep "tomcat" | grep -v "grep" | awk '{print $2}'`    if [ ! $tomcat_id ];then        echo "tomcat process in ${ip} is not exist."    else        echo "shutdown tomcat in ${ip}"        ssh ody@$ip "/bin/kill -9 $tomcat_id"            if [ $? == 0 ];then                echo "shutdown ody@$ip tomcat process is success."            else                echo "shutdown ody@$ip tomcat process is false."                exit 2            fi    fi    }    function start_tomcat() {    ip=$1    echo "start tomcat in ${ip}."    ssh ody@$ip "JAVA_HOME=/usr/local/java/jdk1.7.0_80;export JAVA_HOME;/bin/sh /data/tomcat/bin/startup.sh"    ssh ody@$ip "/usr/local/java/jdk1.7.0_80/bin/jps"    }    if [ `whoami` == "ody" ];then          ssh 10.18.3.200 "cd /data/war && md5sum -c ${pool_name}.war.md5"          if [ $? -eq 0 ];then            pool_ip_list=`awk 'BEGIN{list="'${product_ip_list}'";split(list,ip_list,",");for(ip in ip_list){print ip_list[ip];}}'`            for deploy_ip in ${pool_ip_list[*]};do                shutdown_tomcat ${deploy_ip}                   ssh ${deploy_ip} "cd /data/tomcat/webapps && mv ${pool_name}.war ${pool_name}.war-${time_stamp}"                     ssh ${deploy_ip} "cd /data/tomcat/webapps && rm -rf ${pool_name}"                     scp 10.18.3.200:/data/war/${pool_name}.war /data/war/                     scp /data/war/${pool_name}.war ${deploy_ip}:/data/tomcat/webapps                     start_tomcat ${deploy_ip}                    done             else                        echo "md5 check false."                        exit 2            fi    else        echo "please use ody user to exec this shell."    fifi

脚本中的deploy_env.ini文件,是war和ip对应的关系:

大致是下面的样子:

# cat deploy_env.ini ad-whale=10.18.1.1,10.18.1.64ad-whale-web=10.18.1.2

转载地址:http://urxfa.baihongyu.com/

你可能感兴趣的文章
Coolite一个简单例子-GridPanel列表增删改预览
查看>>
SysLogHandler not writing to syslog with Python logging
查看>>
读懂AIMS 2013中的性能分析报告
查看>>
mpfr-3.1.0编译方法
查看>>
ADO.NET 基础(事务、通用的数据工厂)
查看>>
C#深入总结
查看>>
30个绝对让你惊叹的幽默创意广告设计
查看>>
Unix 下获得 root权限
查看>>
Javascript this 的一些学习总结
查看>>
POJ 1200
查看>>
jQuery 选择器
查看>>
曾国藩立志
查看>>
判断鼠标向右或向左滑动,响应不同的事件
查看>>
向awk中传递数组
查看>>
C# 中自定义事件
查看>>
jQuery弹出窗口完整代码
查看>>
供应商与客户 连接平台 的谋合
查看>>
访问者模式讨论篇:java的动态绑定与双分派
查看>>
全局变量与单例模式
查看>>
网络编程
查看>>