检查端口连通情况
echo -e '\x1dclose\x0d' | timeout --signal=9 $timeoutSec telnet $ip $port
批量检查多个IP端口连通性
#!/bin/bash
#---------------------
#Author:holger
#Date:2020-04-21
#Describe:Check Server Ports
#---------------------
LogFile=result.log
CkFile=server.list
#>$CkFile
while read ip port
do
echo -e '\x1dclose\x0d' | timeout --signal=9 5 telnet $ip $port
res=$?
if [ "$res" != "0" ];then
echo "check $ip $port failed" |tee -a $LogFile
else
echo "check $ip $port success"|tee -a $LogFile
fi
done < $CkFile
server.list 内容样例
# cat server.list
10.10.12.10 8080
10.10.12.11 8080
10.10.12.12 8080
监控进程端口,异常则重启
检查应用的端口是否正常,若端口telnet不通,且检查到进程是非正常停止的,则重启应用进程。
#!/bin/bash
#---------------------
#Author:holger
#Date:2020-04-21
#Describe:monitor process port and restart process automatic
#---------------------
Dir=`(cd $(dirname "$0");pwd)`
LogFile=$Dir/monitor.log
while read port startpro ip
do
echo "check $ip $port"
echo -e '\x1dclose\x0d' |timeout --signal=9 5 telnet $ip $port >/dev/null 2>&1
res=$?
if [ "$res" != "0" ];then
ShellDir=`dirname $startpro`
flag=`cat $ShellDir/status.conf|awk -F"=" '{print $2}'`
if [ "$flag" != "stoped" ];then
echo "$port down,flag is : $flag,restart proces!! shell: $startpro" >>$LogFile
/bin/sh $startpro >/dev/null 2>&1
echo "flag=running" >$ShellDir/status.conf
fi
fi
sleep 1
done < $Dir/server.list
server.list 内容样例
# cat server.list
8000 /data/tomcat/start.sh localhost
8001 /data/tomcat1/start.sh localhost
8003 /data/tomcat2/start.sh localhost