检查端口,进程,日志

#进程名字
PROCESSNAME=$1
#进程存在情况(0为不存在,1为存在)
PROCESSSTATU=$2
#端口
PORT=$3
#端口存在情况(0为不存在,1为存在)
PORTSTATU=$4
#日志绝对路径
LOGPATH=$5
#日志关键字
LOGKEYWORLD=$6

#判断进程
if [ "$PROCESSNAME" != "NUll"] && [ "$PROCESSSTATU" != "NUll" ];then
    echo "#CHECK PROCESS"
    IFS=","
    arr=($PROCESSNAME)
    if [ "$PROCESSSTATU" == "0" ];then
        for i in ${arr[@]};do
            #echo "$i"
            ps -ef | grep $i | grep -v grep  >/dev/null 2>&1
            if [ $? -eq 0 ];then
                echo "stop $i failed"
                exit 1
            else
                echo "stop $i sucess"
            fi
        done
    elif [ "$PROCESSSTATU" == "1" ];then
        for i in ${arr[@]};do
            ps -ef | grep $i | grep -v grep >/dev/null 2>&1
            if [ $? -eq 0 ];then
                echo "start $i success"
                ps -ef | grep $i | grep -v grep
            else
                echo "start $i failed"
                exit 1
            fi
        done
    else
        echo "PROCESSSTATU input 0 or 1"
        exit 1        
    fi
else
    echo "#NO CHECK PROCESS"
fi

#判断端口
if [ "$PORT" != "NUll" ] && [ "$PORTSTATU" != "NUll" ];then
    echo "#CHECK PORT"
    IFS=","
    arr=($PORT)
    if [ "$PORTSTATU" == "0" ];then    
        for j in ${arr[@]};do
            netstat -ant | grep -w $j >/dev/null 2>&1
            if [ $? -eq 0 ];then
                echo "stop $j failed"
                exit 1
            else
                echo "stop $j sucess"
            fi
        done
    elif [ "$PORTSTATU" == "1" ];then
        for j in ${arr[@]};do    
            netstat -ant | grep -w $j  >/dev/null 2>&1
            if [ $? -eq 0 ];then
                echo "start $j success"
                netstat -ant | grep -w $j
            else
                echo "start $j failed "
                exit 1
            fi
        done
    else
        echo "PORTSTATU input 0 or 1"
        exit 1
    fi
else 
    echo "#NO CHECK PORT"
fi

#判断日志是否有关键字
if [ "$LOGPATH" != "NUll" ] && [ "$LOGKEYWORLD" != "NUll" ];then
    echo "#CHECK LOG"
    [ ! -f "$LOGPATH" ] && { echo "Not found $LOGPATH";exit 1; }
    tail -1 $LOGPATH | grep $LOGKEYWORLD >/dev/null 2>&1
    if [ $? -eq 0 ];then
        echo "have key world"
        tail -1 $LOGPATH
    else
        echo "no key world $LOGKEYWORLD"
        exit 1
    fi
else
    echo "#NO CHECK LOG"
fi

你可能感兴趣的:(linux,shell脚本)