您的位置:首页 > 运维架构 > Shell

自动部署版本包shell脚本

2015-09-07 15:59 691 查看
        每次部署版本的时候就感觉浪费时间也没有工作效率,每次都是人工手动部署,而且还可能存在认为失误导致部署失败的风险,且每个人的部署习惯都不一致,有的人没有备份版本包的习惯,如果部署的新版本有问题又没有之前版本的备份,在线下测试环境可能会浪费大家的时间,如果是在线上出现这种情况,那就是事故,会招来客户投诉,所以为了提高工作效率,形成规范,特意抽了点时间写了一个自动部署版本包的脚本。

       自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:

#!/bin/bash
deploy installation script By clinva 2015.08.28

#版本部署路径
mainpath=/home/emalls1/qdone/pcv2

#备份版本包
deploy_backup()
{
cd ${mainpath}/tomcat8/webapps/;
tar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc;
sleep 3
ls;
mv *.tar.gz ${mainpath}/backup/;
}

#解压版本包
deploy_unzip()
{
cd ${mainpath};
ls;
sleep 3;
#unzip -l *.zip;
unzip -o -d ./tomcat8/webapps/epc pc.zip;
sleep 3;
}

#重启tomcat
deploy_restart()
{
cd ${mainpath}/tomcat8/bin;
pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'`
echo $pid1
if [ -z $pid1 ]; then
echo "not exist"
./startup.sh;
tailf ./../logs/catalina.out
exit 1
else
echo "restarting tomcat1"
kill -9 $pid1
sleep 5
./startup.sh;
tailf ./../logs/catalina.out
fi
}

#版本回滚
deploy_Rollback()
{
#进入备份文件夹
cd ${mainpath}/backup/
#获取最新备份文件
file_name_new=''
for i in `ls -tr`;
do
echo $i;
file_name_new=$i;
done;
#将备份文件复制到webapps
cp  ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps
if [ $? -eq 0 ]
then
echo 复制${file_name_new}成功
else
echo 复制失败,退出!
exit 1
fi
#进入webapps/目录
cd  ${mainpath}/tomcat8/webapps
#解压文件
echo 正在解压,请稍后...
tar -zxvf ${file_name_new}
#重启tomcat
deploy_restart
}

echo --------欢迎使用shell自动部署脚本--------
echo -e "请输入对应的操作编号:\n0.版本包回滚;\n其他键.一件部署;"
#获取用户操作
read wm2
case $wm2 in
0)
deploy_Rollback
;;
*)
deploy_backup
deploy_unzip
deploy_restart
;;
esac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell