#!bin/bash
ARRAY1=('192.168.1.1' '192.168.1.2')
for ip1 in ${ARRAY1[*]}
do
process_count1=$(ssh -o ConnectTimeout=3 $ip1 'netstat -ntlp|grep "端口名" |grep -v grep |wc -l' 2>/dev/null)
if [ "$process_count1" -eq 1 2>/dev/null ];then
echo -e " 33[32m $ip1 控制台服务端口 正常 33[0m"
else
echo -e " 33[31m $ip1 控制台服务端口 异常 33[0m"
fi
process_name1=$(ssh -o ConnectTimeout=3 $ip1 'ps -ef|grep "进程名" |grep -v grep |wc -l' 2>/dev/null)
if [ "$process_name1" -eq 1 2>/dev/null];then
echo -e " 33[32m $ip1 控制台服务进程 正常 33[0m"
else
echo -e " 33[31m $ip1 控制台服务进程 异常 33[0m"
fi
done
echo "************************************************************************"
脚本解释:
1.通过遍历数组中的ip,通过ssh连接输入命令过滤端口和进程,进而判断服务状态;
2.2>/dev/null是为了加强体验,不然ip连不上会导致超时错误输出在屏幕上,if 那一句也是重定向报错信息;
3.echo -e " 33[31m hello