如何用SHELL诊断网络中哪台服务器。。。。。。。。。。

如何用SHELL诊断网络中哪台服务器。。。。。。。。。。

如果网络中有很多linux服务器,怎样写shell来诊断哪一台死机了?及时提醒。
man nmap
死机 与没有开机 不好区别吧
一个粗糙的 PING 监视脚本,供参考:
[code:1]##!/bin/bash

# 监视目标
TARGET="192.168.1.1"

# PING 间隔
PAUSE=1

MISSED=0

while true; do
        if ! ping -c 1 -w 1 $TARGET > /dev/null; then
                ((MISSED++))
        else
                if [ $MISSED -gt 2 ]; then
                        #提醒服务器恢复
                        echo `date +%F\ %T`  $TARGET resumed.
                fi
                MISSED=0
        fi

        if [ $MISSED -eq 2 ]; then
                #提醒服务器在1秒钟内没有回应
                echo `date +%F\ %T`  $TARGET HAS NO RESPONSE!
        fi

        sleep $PAUSE

        if [ $MISSED -gt 253 ]; then
                MISSED=5
        fi
done
[/code:1]

实际上,PING是非常不可靠的。

判断服务器是否死机(应该说停止响应),应该是去监视具体的服务端口,看能否返回一个预设的完整结果。