歡迎您光臨本站 註冊首頁

如何在一台主機上監控其他幾台主機的某一埠?

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

如何在一台主機上監控其他幾台主機的某一埠?

如何在一台主機上監控其他幾台主機的某一埠?







讓一台主機監控五台機器上面的埠【五台埠一樣】,其中一台應用埠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的方式

[火星人 ] 如何在一台主機上監控其他幾台主機的某一埠?已經有315次圍觀

http://coctec.com/docs/service/show-post-1639.html