test

#!/bin/bash 
################ Version Info ##################
# Create Date: 2021-06-23
# Author:      Mike 
# Version:     1.0
# Attention:   Stop cdassign.sh and  runjob.sh
################################################

if [ `whoami` != "root" ];then
        echo "ERROR: this scripts must be executed by root"
        exit
fi


if [  ! -f /sysp/cdadminlib/working/cdcontrol.log ];then
        touch /sysp/cdadminlib/working/cdcontrol.log
        chown mdwcdu01.conn /sysp/cdadminlib/working/cdcontrol.log
        chmod 775 /sysp/cdadminlib/working/cdcontrol.log
fi



host=`hostname`
scname="infrastop.sh"
date=`date +%Y%m%d`
datest=`date +%H%M%S`

stop()
{
        echo "$host|$scname|start|$date|$datest" >>/sysp/cdadminlib/working/cdcontrol.log
        #/sysp/cdadminlib/scripts/support/cdinfracontrol.sh $host disble
        echo "hello world"
        sleep 2
        Status=`cat /sysp/cdadminlib/working/weighted_host.log |grep $host |awk -F "|" '{print $(NF-1)}'`

        num=1
        for i in `seq 3`
        do
                if [ "$Status"  = "A"  ] || [[  -s /sysp/cdadminlib/working/$host.tmp ]];then
                        #/sysp/cdadminlib/scripts/support/cdinfracontrol.sh $host disble
                        echo "hello world"
                        sleep 2
                        let num=$num+1
                                if [ $num -gt 2 ];then
                                        echo "Error:$host still active in /sysp/cdadminlib/working/weighted_host.log or hosname.tmp not empty!"
                                        echo "$host|$scname|Disable Fail|$date|$datest">>/sysp/cdadminlib/working/cdcontrol.log
                                        exit
                                fi

                fi
        done


        for i in `seq 3`
        do
                cdassignpid=`ps -ef |grep cdassign|grep -v grep |awk -F " " '{print $2}'`
                #echo "cdassignpid="$cdassignpid
                [[ ! -z $cdassignpid ]] && kill -9 $cdassignpid
                        if [ $? -eq 0 ] ;then
                                sleep 3
                        #       nohup ./cdassign.sh & >/dev/null
                                ps -ef |grep cdassign|grep -v grep 
                                        if [ $? -eq 0 ];then
                                        nocdassignpid=1
                                        else
                                        nocdassignpid=0
                                        break
                                        fi
                        fi
                        
        done



#echo "cdassign-----" $nocdassignpid

        for i in `seq 3`
        do
                runjobpid=`ps -ef |grep runjob|grep -v grep |awk -F " " '{print $2}'`
                #echo "runjobpid="$runjobpid
                [[ ! -z $runjobpid ]] && kill -9 $runjobpid
                        if [ $? -eq 0 ] ;then
                                sleep 3
                                #nohup ./runjob.sh & >/dev/null
                                ps -ef |grep runjob|grep -v grep
                                        if [ $? -eq 0 ];then
                                        norunjobpid=1
                                        else
                                        norunjobpid=0
                                        break
                                        fi
                        fi
        done



#echo "runjob-----" $norunjobpid

                        if   [[ $nocdassignpid -eq "0" ]] && [[  $norunjobpid -eq "0" ]];then
                        echo "cdassign.sh and runjob.sh are stopped  successfully!"
                        echo "$host|$scname|end|$date|$datest" >>/sysp/cdadminlib/working/cdcontrol.log
                        elif [[ $nocdassignpid -ne "0" ]] && [[ $norunjobpid -ne "0"  ]];then
                        echo "cdassign.sh and runjob.sh are not stopped,please check!"
                        echo "$host|$scname|runjob.sh and cdassign.sh cannot be killed not stop|$date|$datest" >>/sysp/cdadminlib/working/cdcontrol.log
                        elif [[ $nocdassignpid -eq "0" ]] && [[ $norunjobpid -ne "0" ]];then
                        echo "runjob.sh not stopped and cdassign.sh stopped.please check!"
                        echo "$host|$scname|runjob.sh NOT stopped|$date|$datest">>/sysp/cdadminlib/working/cdcontrol.log
                        else
                        echo "cdassign.sh not stopped and runjob.sh stopped,please check!"
                        echo "$host|$scname|cdassign.sh NOT stopped|$date|$datest" >>/sysp/cdadminlib/working/cdcontrol.log
                        fi

}


case "$1" in
stop)
   stop
;;
*)
 echo "usage: $0 {start | stop | restart}"
esac


posted @ 2021-06-25 14:04  mikefan  阅读(49)  评论(0)    收藏  举报