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