zzjlilo 发表于 2005-6-8 13:03:22

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

如果网络中有很多linux服务器,怎样写shell来诊断哪一台死机了?及时提醒。

kornlee 发表于 2005-6-8 14:27:19

man nmap

BOoRFGOnZ 发表于 2005-6-8 19:24:40

死机 与没有开机 不好区别吧

dannycat 发表于 2005-6-8 22:30:39

一个粗糙的 PING 监视脚本,供参考:
##!/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


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

判断服务器是否死机(应该说停止响应),应该是去监视具体的服务端口,看能否返回一个预设的完整结果。
页: [1]
查看完整版本: 如何用SHELL诊断网络中哪台服务器。。。。。。。。。。