如何在一台主機上監控其他幾台主機的某一埠?
如何在一台主機上監控其他幾台主機的某一埠?
讓一台主機監控五台機器上面的埠【五台埠一樣】,其中一台應用埠down了就重啟所有的埠【在一個控制台上】
但是因為許可權問題,這裡監聽埠的必須是root用戶才能執行,而那個腳本的啟用一般都是普通用戶,所以下面的方案看來還是有點問題。#!/bin/bash
#################################################
###This program is to listen the hadoop port!####
#################################################
ip=(192.168.30.55 192.168.30.56 192.168.30.57 192.168.30.58 192.168.30.59)
size=${#ip[@]}
for ((i=0;i<$size;i++))
do
host=${ip}
keyw=`nmap -sS -n -p6003 $host -oG - | grep "^Host"|cut -d/ -f2`
if [ "$keyw" == "closed" ];then
sh /opt/hbase/bin/starthbase.sh
echo "We have started the hadoop $host again!!!"
else
echo "The hadoop $host status is ok!"
exit
fi
done那麼我們就考慮換一種方法:#!/bin/bash
#################################################
###This program is to listen the hadoop port!####
#################################################
ip=(192.168.30.55 192.168.30.56 192.168.30.57 192.168.30.58 192.168.30.59)
size=${#ip[@]}
for ((i=0;i<$size;i++))
do
host=${ip}
wget http://"$host":6003 > /dev/null
if [ $? == 0 ];then
echo "`date "+%F %H:%M"` The hadoop $host is ok!!" >> /opt/log/hadoop-zy.log`date +%F`
rm /zy/index.html*
else
sh /opt/oracle/hbase/bin/start-hbase.sh
echo "`date "+%F %H:%M"` We have started the hadoop again!!!" >> /opt/log/hadoop-zy.log`date +%F`
fi
done
《解決方案》
真正監控的也就是這點代碼吧
host=${ip}
wget http://"$host":6003
也可以用curl命令,或者telnet,還可以用java、python 寫個socket的方式