The Script read the port number from the sample.txt file and service name
sample .txt#INSTANCE_NAME:PORT:USER:
http 80 root 81
https 443 root ssh 22 rrot mail 25 rrotftp 21 root
#!/bin/bash
cat /root/sample.txt|grep -v "^#"| while read line
do
#echo $line
NETSTAT=/bin/netstat
# for old file
INSTANCE_NAME=`echo $line | awk '{print $1}'`
PORT_NO=`echo $line | awk '{print $2}'`
USER=`echo $line | awk '{print $3}'`
# for new file
#INSTANCE_NAME=`echo $line | awk -F':' '{ print $1 }'`
#PORT_NO=`echo $line | awk -F':' '{ print $2 }'`
#USER=`echo $line | awk -F':' '{ print $3 }'`
echo $INSTANCE_NAME
echo $PORT_NO
echo $USER
RPORTS=$($NETSTAT -utan|awk '{print $4}'|sed -s "s/::ffff:[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]/::/g"
|sed -s "s/0.0.0.0/::/g"|sed -s "s/127.0.0.1/::/g"|sed -s "s/[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]/::/g"|
cut -f4 -d":"|grep -v 127.0.0.1)
status="NO"
for r in $RPORTS
do
if [ "$r" == "$PORT_NO" ]
then
status="YES"
break
fi
done
echo -n " $INSTANCE_NAME is running $status with user as $USER"
echo ""
doneit monitor the services
0.0.0.0:80
:::8080
::ffff:127.0.0.1:8005
No comments:
Post a Comment