tomcat自动部署脚本

#!/bin/bash
# deploy installation script By 6oo1.com
# project_name=6oo1
# deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚)
# 每个函数可独立运行,也可根据提示进行

说明:
1.新建一个目录autoDeploy与tomcat目录放在同级目录下
(1)autoDeploy.sh放在autoDeploy目录下
(2)需要部署的test.war放在autoDeploy目录下(test.war为需要部署的到tomcat上的war包)
2.tomcatPath=tomcat-7(指定tomcat文件目录名称,tomcat-7改为自己tomcat的目录名称)
3.执行autoDepoy.sh即可实现自动部署
新建的autoDepoy.sh若没有执行权限,需要执行:chmod +x autoDeploy.sh

#版本部署路径
mainpath=/PATH/

#备份当前版本
deploy_backup()
{
    cd ${mainpath}/tomcat/webapps;
    tar -zcvf 6oo1_`date+%y%m%d%H%M%S`.tar.gz 6oo1;
    sleep 3;
    ls;
    mv *.tar.gz ${mainpath}/backup/;
}

#部署新版本
deploy_new()
{
    cd ${mainpath};
    ls;
    sleep 3;
    unzip -l *.zip;
    unzip -o -d ./tomcat/webapps/6oo1 new.zip;
    sleep 3;
}

#重启tomcat
deploy_restart()
{
    cd $(mainpath)/tomcat/bin;
    pid=`ps -ef|grep PATH|awk '{print $2}'`
    echo $pid
    if [ -z $pid ]; then
        echo "not exist"
        ./service.sh;
        tailf ./../logs/catalina.out 
    fi
}

#版本回滚
deploy_rollback()
{
    cd $(mainpath)/backup/   #进入备份文件夹
    #获取最新的备份文件
    newbackup=''
    for i in `ls -tr`;
    do
        echo $i;
        newbackup=$i;
    done;
    #将最新的备份文件复制到webapps
    cp ${mainpath}/backup/${newbackup} ${mainpath}/tomcat/webapps
    if [ $? -eq 0 ]; 
        then
        echo "Copy ${newbackup} OK"
    else
        echo " faild,exit! "
        exit 1
    fi
    # 进入webapps/目录
    cd ${mainpath}/tomcat/webapps
    # 解压文件
    echo "waiting"
    tar -zxvf ${newbackup}
    #重启tomcat
    deploy_restart
}

echo --------欢迎使用shell自动部署脚本--------
echo -e "请输入对应操作编号:\n0.版本回滚;\n其他键.一键部署;"
#获取用户操作
read keyboard
case $keyboard in
0)
    deploy_rollback
    ;;
*)
    deploy_backup
    deploy_new
    deploy_restart
    ;;
esac

你可能感兴趣的:(tomcat自动部署脚本)