- -----------------------将ping的结果在web界面显示---------------------------
- #!/bin/bash
- ###变量先要声明才能使用
- shopt -s -o nounset
#检查参数是否正常 - hostlist=${1:?'请提供主机IP列表文件'}
- [ ! -f $hostlist ] && echo "IP列表文件不存在,请检查" && exit 1
- date=$(date +'%Y%m%d%H%M')
- date_for_man=$(date +'%Y-%m-%d %H时 %M分')
#ping的次数- pno=4
- #检查结果存文件
- padir="/var/www/html/pa"
- pahtml="$padir/index.html"
- pahtml_now="$padir/pa-$date.html"
- #函数区
html_head() {- [ ! -e $padir ] && mkdir -p $padir
- cat <<HEAD > $pahtml_now
- <html>
<head> - <title>ping alive 检查结果</title>
- <meta HTTP-EQUIV="Refresh" CONTENT="900">
- <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
- <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
- <meta HTTP-EQUIV="Expires" CONTENT="Mon, 01 Jul 2000 06:00:13 GMT">
- <meta http-equiv="Content-Type" content="text/html; charset=Big5">
- </head>
- <body bgcolor="white">
- <div align=center><font size=6><b>***我的主机监控***</b></font></div>
- <div align=center>检测时间:$date_for_man</div>
- <p>
- <table width="%60" align=center border=3>
- <tr><td nowrap>主机名</td><td>IP</td><td nowrap>最小反应时间</td><td nowrap>最大反应时间</td><td nowrap>平均反应时间</td></tr>
- HEAD
- }
- html_tr() {
- if [ "$1" = "pingError" ];then
- cat <<TR >> $pahtml_now
- <tr><td>$host</td><td>$ip</td><td colpan=3><font color=red><b>无法连通!!!</b></font></td></tr>
- TR
- else
- cat <<TR >> $pahtml_now
- <tr><td>$host</td><td>$ip</td><td>$rt_min ms</td><td>$rt_max ms</td><td>$rt_avg ms</td></tr>
- TR
- fi
- }
- html_end() {
- cat <<END >> $pahtml_now
- </table>
- </body>
- </html>
- END
- ln -sf $pahtml_now $pahtml
- }
html_head- #--------------------------------------------------------------------------------------------
- while read host ip
- do
- rt_min=
- rt_avg=
- rt_max=
- while read r
- do
- if [[ $r == rtt* ]];then //这里的rtt要看不同的系统,centosping完后会有如上字样
- //其他系统要看看最后回应的结果中包含什么,然后进行替换
- rt_min=$(echo $r |awk '{print $4}' | awk -F/ '{print $1}')
rt_avg=$(echo $r |awk '{print $4}' | awk -F/ '{print $2}')
rt_max=$(echo $r |awk '{print $4}' | awk -F/ '{print $3}')- html_tr $rt_min $rt_avg $rt_max
- fi
- done < <(ping -c $pno $ip)
- if [ -z $rt_min ];then
- html_tr PingError
- fi
- done < <(cat $hostlist)
- #--------------------------------------------------------------------------------------------------
- html_end
- -----------------------------执行脚本---------------------------
- ./ping.sh hostlist.txt
- ---------------------------------------------------------------
- -------------------web服务器正常运行的情况下,在浏览器中输入http://webip/pa就可以看到结果
转载于:https://blog.51cto.com/loveroot/1107523