备份当前执行A项目与B项目

来源:互联网 发布:北京淘宝培训一对一 编辑:程序博客网 时间:2024/06/06 10:47
root@ubuntu:/tmp# cat update.sh #!/bin/shdirName=`date +%Y%m%d`#以时间年月日命令文件夹bakAbsolutePath=/mnt/bak/$dirName#备份绝对路径projectBPath=/data/qd/apache-tomcat-7.0.39-projectBprojectAPath=/data/qd/apache-tomcat-7.0.39-projectA#对应A项目与B项目存放路径if [ ! -d "$bakAbsolutePath" ]; then        mkdir -p $bakAbsolutePath        #备份绝对路径不存在情况下,进行文件夹创建fiif [ $# -ne 1 ]; then        echo "Usage: update.sh {projectA|projectB}"         exit        #备份fiif [ "$1" = "projectA" ]; then        $projectAPath/bin/shutdown.sh >/dev/null 2>&1        echo "Shutdown the projectA"        #备份前先停止当前运行        sleep 3    count=`ps -ef |grep projectA |grep -v grep |grep -v update.sh| wc -l`    #打印出所有进行-过滤出项目A(去掉使用grep与update.sh参数情况)    if [ $count -ne 0 ]; then            kill -9 `ps -ef |grep projectA|grep -v grep |grep -v update.sh |awk '{ print $2 }'`            #统计数不等于0,所以没有停止掉,此时采用kill -9 强制停止    fi    ls -A $projectAPath/webapps/projectA* >/dev/null 2>&1    isExist=`echo $?`    if [ $isExist -eq 0 ]; then            mv -f --backup=t $projectAPath/webapps/projectA* $bakAbsolutePath    fi    #进行备份(--backup=t参数代表如果文件中已经有相同备份文件,如同一天备份多次,备份的名称将累加~.1~    echo $projectAPath    elif [ $1 = "projectB" ]; then        $projectBPath/bin/shutdown.sh >/dev/null 2>&1        echo "Shutdown the projectB"        sleep 3    count=`ps -ef |grep projectB |grep -v grep |grep -v update.sh| wc -l`    if [ $count -ne 0 ]; then            kill -9 `ps -ef |grep projectB |grep -v grep |grep -v update.sh |awk '{ print $2 }'`    fi    ls -A $projectBPath/webapps/projectB* >/dev/null 2>&1    isExist=`echo $?`    if [ $isExist -eq 0 ]; then            mv -f --backup=t $projectBPath/webapps/projectB* $bakAbsolutePath    fi    echo $projectBPathelse         echo "Usage: update.sh {projectA|projectB}"         exitfiecho "backup complete"

简易启动与关闭

root@ubuntu:/tmp# cat service.sh #!/bin/shprojectBPath=/data/qd/apache-tomcat-7.0.39-projectBprojectAPath=/data/qd/apache-tomcat-7.0.39-projectAprojectA_start(){        count=`ps -ef |grep projectA |grep -v grep |grep -v service.sh| wc -l`        if [ $count -ne 0 ]; then                #kill -9 `ps -ef |grep projectA|grep -v grep |grep -v service.sh |awk '{ print $2 }'`                echo "projectA exist"                exit        else                $projectAPath/bin/startup.sh >/dev/null 2>&1                echo "Start the projectA"                sleep 3        fi}projectA_stop(){    $projectAPath/bin/shutdown.sh >/dev/null 2>&1    sleep 3    count=`ps -ef |grep projectA |grep -v grep |grep -v service.sh| wc -l`    if [ $count -ne 0 ]; then            kill -9 `ps -ef |grep projectA|grep -v grep |grep -v service.sh |awk '{ print $2 }'`    fi    echo "Shutdown the projectA"}projectB_start(){       count=`ps -ef |grep projectB |grep -v grep |grep -v service.sh| wc -l`       if [ $count -ne 0 ]; then               echo "projectB exist"               exit       else               $projectBPath/bin/startup.sh >/dev/null 2>&1               echo "Start the projectB"               sleep 3       fi}projectB_stop(){        $projectBPath/bin/shutdown.sh >/dev/null 2>&1        sleep 3        count=`ps -ef |grep projectB |grep -v grep |grep -v service.sh| wc -l`        if [ $count -ne 0 ]; then                kill -9 `ps -ef |grep projectB |grep -v grep |grep -v service.sh |awk '{ print $2 }'`        fi        echo "Shutdown the projectB"}projectA_restart(){        projectA_stop        projectA_start}projectB_restart(){        projectB_stop        projectB_start}if [ $# -ne 2 ]; then        echo "Usage: update.sh {projectA|projectB} {start|stop|restart}"         exitfiif [ "$1" = "projectA" ]; then        if [ "$2" = start ];  then                projectA_start        elif [ "$2" = stop ];  then                projectA_stop        elif [ "$2" = restart ];  then                projectA_restart        else                echo "$2 unknow"        fi        echo $projectAPathelif [ "$1" = "projectB" ]; then        if [ "$2" = start ];  then                projectB_start        elif [ "$2" = stop ];  then                projectB_stop        elif [ "$2" = restart ];  then                projectB_restart        else                echo "$2 unknow"        fi        echo $projectBPathelse        echo "Usage: update.sh {projectA|projectB} {start|stop|restart}"         exitfiroot@ubuntu:/tmp# 
0 0