自动部署版本包shell脚本
2015-09-07 15:59
691 查看
每次部署版本的时候就感觉浪费时间也没有工作效率,每次都是人工手动部署,而且还可能存在认为失误导致部署失败的风险,且每个人的部署习惯都不一致,有的人没有备份版本包的习惯,如果部署的新版本有问题又没有之前版本的备份,在线下测试环境可能会浪费大家的时间,如果是在线上出现这种情况,那就是事故,会招来客户投诉,所以为了提高工作效率,形成规范,特意抽了点时间写了一个自动部署版本包的脚本。
自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:
自动部署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
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天
- Perl 获取shell命令的执行结果
- Shell脚本中非交互式修改密码的两种方法