如何用SHELL诊断网络中哪台服务器。。。。。。。。。。
如果网络中有很多linux服务器,怎样写shell来诊断哪一台死机了?及时提醒。 man nmap 死机 与没有开机 不好区别吧 一个粗糙的 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]