• Shell脚本自动重启Java服务


    话不多说直接上代码:

    cd /home/javaProduct/
    if
    [ -d '/home/javaProduct/lib_new/' ]; then
    echo 'Has New Lib!'
    echo '--------------Begin Stop JavaService----------------'
    edocid=$(jps |grep JavaService | awk '{print $1}')
    echo $edocid
    kill -9 $edocid
    echo '--------------Begin Move Lib------------------------'
    mv /home/javaProduct/lib/ /home/javaProduct/lib_prev
    echo '--------------End Move Lib--------------------------'
    echo '--------------Begin Move Lib_New--------------------'
    mv /home/javaProduct/lib_new/ /home/javaProduct/lib/
    echo '--------------End Move Lib_New----------------------'
    echo '--------------Begin Start Service-------------------'
    nohup ./appServer.sh start
    echo '--------------End Start Service---------------------'
    echo '--------------Begin Move Lib_Prev-------------------'
    time2=$(date "+%Y%m%d%H%M%S")
    hislib1='/home/javaProduct/lib_'
    hislib2=$hislib1$time2
    mv /home/javaProduct/lib_prev/ $hislib2
    echo '--------------End Move Lib_Prev---------------------'
    echo '--------------End Stop JavaService------------------'
    else
    echo 'No Lib_New'
    fi

    另外这里还要提到dos2unix来将windows编写shell脚本转换为Linux的,要不上传上去不能用。

    由于在DOS(windows系统)下,文本文件的换行符为CRLF,而在Linux下换行符为LF,使用git进行代码管理时,git会自动进行CRLF和LF之间的转换,这个我们不用操心。而有时候,我们需要将windows下的文件上传到linux上,例如shell脚本,执行的时候有时会出现奇怪的问题,这时候,就需要安装dos2unix软件,centos下:

    yum install -y dos2unix

    安装完成后,对文件进行转换

    dos2unix abc.sh

    现在执行就不会出问题了

    补充,自动重启Tomcat的脚本

    cd /home/edocProduct/tomcat/bin
    if [ -f "/home/edocProduct/tomcat/webapps/ROOT.war.new" ]; then
        echo "Has New War!"
        echo "------------Begin Stop Tomcat---------------"
        for i in $(ps -ef|grep tomcat | awk '{print $3"+"$2}');
        do
            if [ ${i%+*} = "1" ]; then
                echo $i
                echo ${i#*+}
                kill -9 ${i#*+}
                echo "---------------------Begin Move ROOT.war-----------------------"
                mv /home/edocProduct/tomcat/webapps/ROOT.war /home/edocProduct/tomcat/webapps/ROOT.war.prev
                echo "---------------------End Move ROOT.war-------------------------"
                echo "---------------------Begin Move ROOT.war.new-------------------"
                mv /home/edocProduct/tomcat/webapps/ROOT.war.new /home/edocProduct/tomcat/webapps/ROOT.war
                echo "---------------------End Move ROOT.war.new---------------------"
                echo "---------------------Begin Start Tomcat------------------------"
                nohup ./startup.sh
                echo "---------------------End Start Tomcat--------------------------"
                echo "---------------------Begin Move ROOT.prev----------------------"
                time2=$(date "+%Y%m%d%H%M%S")
                hislib1='/home/edocProduct/tomcat/webapps/ROOT.war'
                hislib2=$hislib1$time2
                mv /home/edocProduct/tomcat/webapps/ROOT.war.prev $hislib2
                echo "---------------------End Move ROOT.war.prev--------------------"
                echo "---------------------End Stop Tomcat---------------------------"
            fi
        done;
    else
        echo 'No ROOT.war.new'
    fi
  • 相关阅读:
    -webkit-line-clamp 多行文字溢出...
    整理一些知识碎片...
    localstorage sessionstorage和cookie的区别
    数据结构 --- Set
    Iterator(遍历器)
    ES6数组方法 -- reduce()
    ES6 -- 展开运算符
    Centos7 + Oracel 18c
    Mysql 查询返回大量数据导致内存溢出
    github的安装和使用
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/11546850.html
Copyright © 2020-2023  润新知