由于目前多组件的开发模式,导致一个服务可能是由多个组件同时支持的,所以判断这些组件的正常运行就变得比较重要了,之前是根据数据流向,由源头开始判断,命令繁琐,且时间长了,命令也就不记得了。所以想编写一个脚本,进行服务的status判断:
以agent+kafka +tomcat为例:
#!/bin/bash
serviceListening(){
command=`netstat -ln|grep $2`
if [ "$command" == "" ]
then
echo -e "\033[31m$1 not started \033[0m"
else
echo "$1 is started"
fi
}
serviceStatus(){
command=`ps aux|grep $2 |grep -v "grep"`
if [ "$command" == "" ]
then
echo -e "\033[31m$1 not started \033[0m"
else
echo "$1 is started"
fi
}
#listen port
#DB
echo -e "\033[32mDB status\033[0m"
serviceListening MysqL 3306
#Component
echo -e "\033[32mComponent status\033[0m"
serviceListening kakfa 9092
serviceStatus agent appmaster
#web
echo -e "\033[32mWEB status\033[0m"
serviceListening tomcat 80
DB status
MysqL is started
Component status
kakfa is started
agent not started
WEB status
tomcat not started