设为首页 收藏本站
查看: 1081|回复: 0

shell脚本实现机房服务器巡检(初步)

[复制链接]

尚未签到

发表于 2018-8-25 09:18:40 | 显示全部楼层 |阅读模式
  前言:
  C语言有一定功底的同学能很快上手linux下的shell脚本应用。以下脚本以应用ping以检测机房机架上个服务器的连通性。并配以必要的注解
  新建一个shell脚本的简单流程:
  #vim filename.sh            新建并编辑脚本
  #chmod +x filename.sh       赋予脚本文件执行权限
  #./filename.sh              执行脚本
  例子:
  ping.sh
  #!/bin/bash
  #
  PING() {                                                #声明一个函数PING,重复利用
  if ping -c 1 -W 1 $1 &> /dev/null; then    #ping一次某ip,等待时间为一秒。此处直接使用命令返回值作为判定条件。一秒内收到返回值则if判定的条件为真,否则为假。
  echo "$1 is online."
  else
  echo "$1 is down!!!!!"
  fi
  }
  while true; do                                      #利用while的无限循环来持续输出巡检结果。
  for I in {100..129}; do                         #巡检连续的ip
  {
  PING 192.168.89.$I                             #此处为函数调用处,重复利用了PING函数。‘192.168.89.$I’作为PING()函数的参数($1=192.168.89.$I)
  sleep 0.5                                            #输出结果后睡眠半秒,给用户一个查看时间。
  }
  done
  for I in {89.243,40.1,42.1,49.1,47.1,60.1,54.1,56.1,44.1,42.3,78.1,78.9,222.222}; do   #处理不连续的ip段
  {
  PING 192.168.$I
  sleep 0.5
  }
  done
  #下面一行为完成一次shell的巡检后,给予用户的信息反馈
  echo "Finish!  PING process will restart 10 secomd later..
  If you want to exit ,click  Ctrl + Z
  "
  sleep 10
  done
  进阶版本:
  serping.sh
  #!/bin/bash
  #
  PING() {
  if ping -c 1 -W 1 $1 &> /dev/null; then
  echo "$1 is online."
  else
  echo "$1 is down!!!!!"
  fi
  }
  while true; do
  for I in {'501E',2.{2,4,5},1.123,14.60,1.30,1.23,2.20,'301F',12.{8,5,6,7,3,2},'502A',1.124,0.20,1.{20,25},'502B',1.16,13.2,14.13,3.4,1.10,0.205,16.7,'502C',1.42,16.{4,9,6},13.{4,1},1.24,13.7,16.8,'502D',13.5,1.15,3.29,14.14,3.1,14.{4,7,11,12}}; do        #机架名称和ip字符放在for循环里,连续的ip段使用{}简化表示
  {
  if [ ${I:0:3} \> '256' ];then    #取字符前面三位数比较,大于256(没有大于256的ip地址),则是机架号,直接输出机架号
  {
  echo "机架号:$I"
  #continue       #提前结束本次for循环 ,可省略
  }
  else
  {
  PING 192.168.$I
  sleep 0.5
  }
  fi
  }
  done
  echo "
  Finish!  PING process will restart 10 secomd later..
  If you want to exit ,click  Ctrl + Z
  "
  sleep 10
  done
  多学shell例子,就可以融会贯通了。
  有兴趣的同学可以复制粘贴到shell脚本中测试。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556216-1-1.html 上篇帖子: shell提取cache失败列表用户脚本 下篇帖子: 关于ansbile工具的shell、command、script、raw模块的区别和使用场景
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表