shell编写的监控程序
时间:2010-10-15 来源:sulog
Color_Change()
{
echo -ne "\33[1m\33[3${1}m\33["
}
Color_Recover()
{
echo -ne "\33[1m\33[37m\33["
}
Start_Wko ()
{
printf "\n\n\t\t\t WKOPCTLSRV HAPPEN ERROR\n"
printf "\t\t\t____________________\n"
printf "\t\t\t"
for ((i = 0; i < 2; i++))
do
for ((j = 0; j < 5; j++))
do
usleep 500000
printf "■"
tput bel
done
done
run ret 1
}
Start_Wkc ()
{
printf "\n\n\t\t\t WKCOMMSRV HAPPEN ERROR\n"
printf "\t\t\t____________________\n"
printf "\t\t\t"
for ((i = 0; i < 2; i++))
do
for ((j = 0; j < 5; j++))
do
usleep 500000
printf "■"
tput bel
done
done
run ret 2
} Check_Pro_Flow()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t FLOW\n"
fi
}
Check_Pro_Conf()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t CONF\n"
fi
}
Check_Pro_Opcl()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t SELF\n"
fi
}
Check_Pro_Comm()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t COMM\n"
fi
}
Check_Pro_Sms()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t SMS\n"
fi
}
Check_Pro_Top()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t TOP\n"
fi
}
#######################
#main
#######################
while true
do date=`date '+%Y-%m-%d %H:%M:%S'`
clear
printf "\n\n\n"
printf "\t\t $date\n"
printf "\t\t----------------------------------------------------------------------------------------------------\n"
printf "\t\t NetName PortState Name UserName Pid ServerName StarTtime\n"
printf "\t\t____________________________________________________________________________________________________\n" Color_Change 2
PORT_COMM=`netstat -nap| grep 5052| awk '{ if ( $6 == "LISTEN" )print $1" "$6}'`
printf "\t\t %s" $PORT_COMM
ps -ef| grep WkCommSrv | awk '{ if ( $3 == 1 ) print " " " WKCOMM"" "$1 "\t" " "$2 "\t" $8 " "$5 }'
ps -ef| grep WkCommSrv | awk '{ if ( $10 ==6 ) print " " " WKCOMM"" "$1 "\t" " "$2 "\t" $8 " "$5 }' NUMBER_WKC=`ps -ef | grep WkCommSrv | grep -v grep | wc -l`
Check_Pro_Comm $NUMBER_WKC
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 3
PORT_WKCL=`netstat -nap| grep 10000| awk '{ if ( $1=="tcp" && $4 =="192.168.10.11:10000" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKCL
ps -ef| grep WKOpCtlSrv | awk '{ if ( $3 == 1 ) print " " " WKSELF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKOpCtlSrv | awk '{ if ( $10 == 6 ) print " " " WKSELF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_WKO=`ps -ef | grep WKOpCtlSrv | grep -v grep | wc -l`
Check_Pro_Opcl $NUMBER_WKO
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 4
PORT_WKTOP=`netstat -nap| grep 10002| awk '{ if ( $1=="tcp" && $4 =="192.168.10.11:10002" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKTOP
ps -ef| grep WKtopDB | awk '{ if ( $3 == 1 ) print " " " WK_TOP"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKtopDB | awk '{ if ( $10 == 6 ) print " " " WK_TOP"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_TOP=`ps -ef | grep WKtopDB | grep -v grep | wc -l`
Check_Pro_Top $NUMBER_TOP
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 5
PORT_WKCONF=`netstat -nap| grep 5051| awk '{ if ( $1=="tcp" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKCONF
ps -ef| grep WKCFSer | awk '{ if ( $3 == 1 ) print " " " WKCONF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKCFSer | awk '{ if ( $10 == 6 ) print " " " WKCONF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_CFS=`ps -ef | grep WKCFSer | grep -v grep | wc -l`
Check_Pro_Conf $NUMBER_CFS
Color_Recover printf "\t\t____________________________________________________________________________________________________\n"
Color_Change 6
PORT_WKFLOW=`netstat -nap| grep 30000| awk '{ if ( $1=="tcp" && $6 == "LISTEN" ) print $1" "$6}'`
printf "\t\t %s" $PORT_WKFLOW
ps -ef| grep wkccflow | awk '{ if ( $3 == 1 ) print " " " WKFLOW"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep wkccflow | awk '{ if ( $10 == 6 ) print " " " WKFLOW"" "$1 "\t" " "$2 "\t" $8" "$5}'
NUMBER_FLOW=`ps -ef | grep wkccflow | grep -v grep | wc -l`
Check_Pro_Flow $NUMBER_FLOW
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 8
printf "\t\t NONAME NOPORT"
ps -ef| grep WKSMSer | awk '{ if ( $3 == 1 ) print " " " WK_SMS"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKSMSer | awk '{ if ( $10 == 6 ) print " " " WK_SMS"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_SMS=`ps -ef | grep WKSMSer | grep -v grep | wc -l`
Check_Pro_Sms $NUMBER_SMS
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 1
test $NUMBER_WKC -ne 0 || Start_Wkc
Color_Recover Color_Change 1
test $NUMBER_WKO -ne 0 || Start_Wko
Color_Recover sleep 3 done
{
echo -ne "\33[1m\33[3${1}m\33["
}
Color_Recover()
{
echo -ne "\33[1m\33[37m\33["
}
Start_Wko ()
{
printf "\n\n\t\t\t WKOPCTLSRV HAPPEN ERROR\n"
printf "\t\t\t____________________\n"
printf "\t\t\t"
for ((i = 0; i < 2; i++))
do
for ((j = 0; j < 5; j++))
do
usleep 500000
printf "■"
tput bel
done
done
run ret 1
}
Start_Wkc ()
{
printf "\n\n\t\t\t WKCOMMSRV HAPPEN ERROR\n"
printf "\t\t\t____________________\n"
printf "\t\t\t"
for ((i = 0; i < 2; i++))
do
for ((j = 0; j < 5; j++))
do
usleep 500000
printf "■"
tput bel
done
done
run ret 2
} Check_Pro_Flow()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t FLOW\n"
fi
}
Check_Pro_Conf()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t CONF\n"
fi
}
Check_Pro_Opcl()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t SELF\n"
fi
}
Check_Pro_Comm()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t COMM\n"
fi
}
Check_Pro_Sms()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t SMS\n"
fi
}
Check_Pro_Top()
{
if [[ ${1} == 0 ]]
then
printf "\t\t\t TOP\n"
fi
}
#######################
#main
#######################
while true
do date=`date '+%Y-%m-%d %H:%M:%S'`
clear
printf "\n\n\n"
printf "\t\t $date\n"
printf "\t\t----------------------------------------------------------------------------------------------------\n"
printf "\t\t NetName PortState Name UserName Pid ServerName StarTtime\n"
printf "\t\t____________________________________________________________________________________________________\n" Color_Change 2
PORT_COMM=`netstat -nap| grep 5052| awk '{ if ( $6 == "LISTEN" )print $1" "$6}'`
printf "\t\t %s" $PORT_COMM
ps -ef| grep WkCommSrv | awk '{ if ( $3 == 1 ) print " " " WKCOMM"" "$1 "\t" " "$2 "\t" $8 " "$5 }'
ps -ef| grep WkCommSrv | awk '{ if ( $10 ==6 ) print " " " WKCOMM"" "$1 "\t" " "$2 "\t" $8 " "$5 }' NUMBER_WKC=`ps -ef | grep WkCommSrv | grep -v grep | wc -l`
Check_Pro_Comm $NUMBER_WKC
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 3
PORT_WKCL=`netstat -nap| grep 10000| awk '{ if ( $1=="tcp" && $4 =="192.168.10.11:10000" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKCL
ps -ef| grep WKOpCtlSrv | awk '{ if ( $3 == 1 ) print " " " WKSELF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKOpCtlSrv | awk '{ if ( $10 == 6 ) print " " " WKSELF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_WKO=`ps -ef | grep WKOpCtlSrv | grep -v grep | wc -l`
Check_Pro_Opcl $NUMBER_WKO
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 4
PORT_WKTOP=`netstat -nap| grep 10002| awk '{ if ( $1=="tcp" && $4 =="192.168.10.11:10002" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKTOP
ps -ef| grep WKtopDB | awk '{ if ( $3 == 1 ) print " " " WK_TOP"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKtopDB | awk '{ if ( $10 == 6 ) print " " " WK_TOP"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_TOP=`ps -ef | grep WKtopDB | grep -v grep | wc -l`
Check_Pro_Top $NUMBER_TOP
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 5
PORT_WKCONF=`netstat -nap| grep 5051| awk '{ if ( $1=="tcp" && $6 == "LISTEN") print $1" "$6}'`
printf "\t\t %s" $PORT_WKCONF
ps -ef| grep WKCFSer | awk '{ if ( $3 == 1 ) print " " " WKCONF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKCFSer | awk '{ if ( $10 == 6 ) print " " " WKCONF"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_CFS=`ps -ef | grep WKCFSer | grep -v grep | wc -l`
Check_Pro_Conf $NUMBER_CFS
Color_Recover printf "\t\t____________________________________________________________________________________________________\n"
Color_Change 6
PORT_WKFLOW=`netstat -nap| grep 30000| awk '{ if ( $1=="tcp" && $6 == "LISTEN" ) print $1" "$6}'`
printf "\t\t %s" $PORT_WKFLOW
ps -ef| grep wkccflow | awk '{ if ( $3 == 1 ) print " " " WKFLOW"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep wkccflow | awk '{ if ( $10 == 6 ) print " " " WKFLOW"" "$1 "\t" " "$2 "\t" $8" "$5}'
NUMBER_FLOW=`ps -ef | grep wkccflow | grep -v grep | wc -l`
Check_Pro_Flow $NUMBER_FLOW
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 8
printf "\t\t NONAME NOPORT"
ps -ef| grep WKSMSer | awk '{ if ( $3 == 1 ) print " " " WK_SMS"" "$1 "\t" " "$2 "\t" $8 " "$5}'
ps -ef| grep WKSMSer | awk '{ if ( $10 == 6 ) print " " " WK_SMS"" "$1 "\t" " "$2 "\t" $8 " "$5}'
NUMBER_SMS=`ps -ef | grep WKSMSer | grep -v grep | wc -l`
Check_Pro_Sms $NUMBER_SMS
Color_Recover printf "\t\t____________________________________________________________________________________________________\n" Color_Change 1
test $NUMBER_WKC -ne 0 || Start_Wkc
Color_Recover Color_Change 1
test $NUMBER_WKO -ne 0 || Start_Wko
Color_Recover sleep 3 done
相关阅读 更多 +