zoukankan      html  css  js  c++  java
  • shell脚本-更新进程

    #!/bin/bash
    #脚本执行格式 sh tesy.sh $1 $2
    if [[ $# -ne 2 ]];then
    cat << EOF
    ERROR :脚本执行格式 sh tesy.sh jar名称 time分秒
    	注意: 当前版本shell脚本使用前提是进程已存在
    EOF
    exit 1
    fi
    
    project=$(echo $1 |awk -F "." '{print $1}')
    FileDir=`ps -ef|grep $1|egrep -v "grep|sh"|awk '{print $NF}'|awk -F'/' '{gsub("/"$NF,"");print}'`
    pid=`ps -ef|grep $1|egrep -v "grep|sh"|awk '{print $2}'`
    
    ps -ef|grep $1|egrep -v "grep|sh"
    if [ $? -ne 0 ];then
    	cat << EOF
    	ERROR $1 不存在!!!
    EOF
    	exit 1
    fi
    
    function DeleteFile(){
    	ReservedNum=5
    	date=$(date "+%Y%m%d-%H%M%S")
    	FileNum=$(ls -l $FileDir|grep $1 |wc -l)
    	while(( $FileNum > $ReservedNum))
    	do
    	    OldFile=$(ls -rt $FileDir|grep $1| head -1)
    	    echo  $date "Delete File:"$OldFile
    	    cd $FileDir
    	    rm -rf $OldFile
    	    let "FileNum--"
    	done
    }
    
    cd $FileDir
    
    echo "1.备份:"
    ls -ld $FileDir/$1
    cp -rp $FileDir/$1 $FileDir/$1_`date +%Y%m%d`_$2
    ls -ld $FileDir/$1_`date +%Y%m%d`_$2
    
    echo "2.更新:"
    scp root@10.10.3.107:/home/test/$1 $FileDir/$1
    #cp /home/test/$1 $FileDir/$1
    chown -R root:root $FileDir/$1
    ls -ld $FileDir/$1
    
    echo "3.杀掉进程:"
    echo $pid
    kill -9 $pid
    
    ps -ef|grep $1|egrep -v "grep|sh"
    if [ $? -ne 0 ];then
    	echo "4.启动"
    	sleep 2
    	nohup java -jar -Xms1024m -Xmx1024m $FileDir/$1 > $FileDir/$project.out 2>&1 &
    	echo "`date +%Y_%m_%d_%H_%M` : "$1" is restart" >> restart_log
    	ps -ef|grep $1|egrep -v "grep|sh"
    	echo "tail -f $FileDir/$project.out"
    
    else
    	echo "杀死进程失败!!!"
    	exit 1
    fi
    
    ps -ef|grep $1|egrep -v "grep|sh"
    if [ $? -ne 0 ];then
    	echo "启动失败!!!"
    	exit 1
    fi
    
    echo "5.清理备份"
    DeleteFile $1
    
  • 相关阅读:
    Android -- 保存文件
    Android -- AsyncTask
    Java 集合
    Android -- ViewPager放入多个XML监听每个的控件
    Android -- 自定义标题栏,背景颜色填充满
    PowerShell正则表达式(一) 定义模式
    PowerShell 简单模式识别 1
    Powershell 设置数值格式 1
    PowerShell String对象方法 1
    PowerShell 字符串操作符
  • 原文地址:https://www.cnblogs.com/orange-lsc/p/12188428.html
Copyright © 2011-2022 走看看