免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1558 | 回复: 3

检测主机存在的shell,测试不通过 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-06-25 14:19 |显示全部楼层
在读一本书的时候看到有一个检测主机存在的shell脚本,并且可以生成html报告,觉得不错就照着写了些,书上的一些小错误自己也改正过来了,但是写完后发现就是无法生成内容,用echo 命令测试都可以运行到那行脚本,就是无法输出到文件,请各位大拿来看看,脚本内容如下
  1. #!/bin/bash
  2. shopt -s -o nounset
  3. HostList=${1:?'please inpute host ip address!'}
  4. [ ! -f $HostList ] && echo 'the file not exist' && exit 1
  5. Date=$(date +"%Y%m%d%H%M")
  6. Date_for_man=$(date +"%Y-%m-%d %Hhour %M minutes")
  7. #the counts of ping
  8. pno=2
  9. #path file to save
  10. padir="/var/www/html/pa"
  11. pahtml="$padir/index.html"
  12. pahtml_now="$padir/pa-$Date.html"

  13. #functions

  14. function html_head(){
  15.   [ ! -e $padir ] && mkdir -p $padir
  16.   cat >$pahtml_now<<HEAD
  17.   <html>
  18.   <head>
  19.   <title>ping alive check result</title>
  20.   <meta HTTP-EQUIV="Refresh" CONTENT="900">
  21.   <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
  22.   <meta HTTP-EQUIV="Content-type" content="text/html; charset=UTF8">
  23.   </head>
  24.   <body bgcolor="white">
  25.   <div align=center><font size=6><b>***my hosts monitor</b></font></div>
  26.   <div align=center>check time: $Date_for_man</div>
  27.   <p>
  28.     <table width="60%" align=center border=3>
  29.       <tr>
  30.         <td nowrap>hostname</td>
  31.         <td>IP</td>
  32.         <td nowrap>min time</td>
  33.         <td nowrap>max time</td>
  34.         <td nowrap>avg time</td>
  35.       </tr>
  36. HEAD

  37. }
  38. html_tr(){
  39.   if [ "$1" -eq "PingError" ]
  40.   then
  41.     echo "fuck tr=========================================================="
  42.     cat <<TR >>$pahtml_now
  43.     <tr>
  44.       <td>$host</td>
  45.       <td>$ip</td>
  46.       <td colspan=3><font color=red><b>cant reachable!!!</b></font></td>
  47.     </tr>
  48. TR
  49.   else
  50.     echo "fuck second tr================================================="
  51.     cat <<TR >>$pahtml_now
  52.       <tr>
  53.         <td> "$host"</td>
  54.         <td>"$ip"</td>
  55.         <td>$rt_min ms</td>
  56.         <td>$rt_max ms</td>
  57.         <td>$rt_avg ms</td>
  58.       </tr>
  59. TR

  60.     fi
  61. }
  62. html_end(){
  63.   cat >>$pahtml_now<<END
  64.     </table>
  65.   </body>
  66.   </html>
  67. END
  68.   ln -sf $pahtml_now $pahtml
  69. }
  70. #the main of the shell

  71. #check up the webpage head
  72. html_head

  73. while read ip
  74. do
  75.   rt_min=
  76.   rt_avg=
  77.   rt_max=
  78.   ping -c $pno $ip|while read r
  79.   do
  80.   echo "$r"|grep rtt
  81.   if [ $? -eq 0 ]
  82.   then
  83.     echo "fuck you hackers---------------------======================"
  84.       rt_min=$(echo $r | awk '{print $4}'|awk -F/ '{print $1}')
  85.       rt_avg=$(echo $r | awk '{print $4}'|awk -F/ '{print $2}')
  86.       rt_max=$(echo $r | awk '{print $4}'|awk -F/ '{print $3}')
  87.       html_tr $rt_min $rt_avg $rt_max
  88.    fi
  89.   done
  90.   if [ -z $rt_min ]
  91.   then
  92.     html_tr PingError
  93.   fi
  94. done<$HostList
  95. html_end
复制代码

论坛徽章:
1
2015亚冠之吉达阿赫利
日期:2015-09-09 16:42:38
发表于 2012-06-25 15:02 |显示全部楼层
复制代码

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
发表于 2012-06-25 16:35 |显示全部楼层
1、
  1. if [ "$1" -eq "PingError" ] --> if [ "$1" == "PingError" ]
复制代码
2、变量host未定义

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-06-25 16:52 |显示全部楼层
回复 3# winway1988


    非常感谢,host那块我还在研究如何转换,后面那条语句改后就ok了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP