由于目前多组件的开发模式,导致一个服务可能是由多个组件同时支持的,所以判断这些组件的正常运行就变得比较重要了,之前是根据数据流向,由源头开始判断,命令繁琐,且时间长了,命令也就不记得了。所以想编写一个脚本,进行服务的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