检测服务器存活事日常运维工作中很重要也是很基础的服务监控服务,最简单的方法是使用ping命令检测.
具体代码如下:
#!/bin/bash
TIMESTAMP=`date +%Y%m%d%H%M%S`
CURRENT_HTML=/var/www/html/${TIMESTAMP}.html
CURRENT_INDEX=/var/www/html/index.html
LN=/bin/ln
RM=/bin/rm
SERVER_LIST=server_list
cat <<EOF > $CURRENT_HTML
<html>
<head>
<title>Server Alive Monitor</title>
</head>
<body>
<table width="50%" border="1" cellpading="1" cellspaceing="0" >
<caption><h2>Server Alive Status</h2></caption>
<tr><th>Server IP</th><th>Server Status</th></tr>
EOF
while read SERVERS
do
#如果ping的结果返回0则状态ok的,同时显示颜色为blue
#如果ping的结果返回非0则状态FALSE的,同时显示字体的颜色为red
#red
ping $SERVERS -c 3
if [ $? -eq 0 ];then
STATUS=OK
COLOR=blue
else
STATUS=FALSE
COLOR=red
fi
echo "<tr><td>$SERVERS</td><td><font color=$COLOR>$STATUS</font></td></tr>" >> $CURRENT_HTML
done < $SERVER_LIST
cat <<EOF >> $CURRENT_HTML
</table>
</body>
</html>
EOF
#将web根目录中的主文件连接到新生成的页面
$LN -sf $CURRENT_HTML $CURRENT_INDEX
最后还需要创建server_list文件:
192.168.1.1
192.168.88.1
61.135.169.125
61.135.157.156
61.135.157.154
正常执行后可显示如下结果(apache服务需要启动)

原文:http://www.cnblogs.com/xccnblogs/p/4881080.html