在一个实际的集群中,可能有几十上百台服务器,每次自己检测集群健康状态时,一台服务器一台服务器检测,一个字母一个字母敲,我都累成狗 。鉴于此,写了一个小脚本,自动跑ping,减轻工作量,呀吼吼,爽歪歪。    
      For example..............
      This’s my test  environment..............
      cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.131 ceph-node1
192.168.200.130 ceph-node2
192.168.200.136 ceph-node3
解决思想(Trouble Shooting):提取这个文件中集群所有的ip地址形成一个单独的文件,在通过读取文件中的ip,自动跑ping...
两大难点:1.提取所有集群IP   2.读取文件中的ip

脚本如下:
#/bin/bash
cat /etc/hosts | grep -v 127 | grep -v :: | awk '{print $1}' >>  a.sh
while read line
do
     ping $line
done < a.sh

第一条提取所有的ip 统一放在a.sh中
下面全部是读取这里面的ip做ping.

缺点 :脚本可以考虑读取hosts文件中的IP,不需要在生成另外的ip地址文件在读取
           可以做做一个计数 ping_count ping几次自动跳转ping下一个ip。

可以有更加人性话的交互,例如ping失败,会显示ping不同的主机名或IP.

改进:
#/bin/bash
cat /etc/hosts | grep -v 127 | grep -v :: | awk '{print $1}' >>  a.sh
while read line
do
     ping $line -c 3 | grep -q "ttl=" && echo "$line yes" || echo "$line no"
done < a.sh
通过修改do下面执行语句成功解决了上述第2.3问题,但是还是发现了一个的bug,每ping一次,生成的ip地址文件中都会重复增加集群地址,导致做了n倍的重复性工作,应该将a.sh改成覆盖,而不是追加。

最终:
#/bin/bash
cat /etc/hosts | grep -v 127 | grep -v :: | awk '{print $1}' >  a.sh
while read line
do
     ping $line -c 3 | grep -q "ttl=" && echo "$line yes" || echo "$line no"
done < a.sh

记录下自己写的第一个脚本的思考过程,哈哈哈哈哈

脚本自动ping检测网络情况相关推荐

  1. 通过Ping检测网络故障的典型次序和IPconfig命令的使用

    1.通过Ping检测网络故障的典型次序 (1)ping 127.0.0.1 这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机.如果没有做到这一点,就表示TCP/IP的安装或运行存在某 ...

  2. BAT脚本: ping检测网络稳定性 与 取命令结果的指定行方法 与 将变量内容追加写入txt文件方法

    ping检测稳定性脚本 @echo off set filePath=D:/pingRecord.csv set ping_url=www.baidu.com set sleep_times=5 :t ...

  3. 你会用Ping检测网络吗?

    经常用Ping来检测网络的通断,同样的操作,还可以使用Pathping,但pathping慢一些,好处是可以得到路由信息. 1.连续测试. ping 1.2.3.4 -t 2.设置测试的包大小和个数. ...

  4. android ping网络连接服务器失败,Android 中网络连接检测和使用ping检测网络是否可访问...

    Android开发中网络相关的检测包括网络是否正常连接和网络已连接但是否可以正常访问两类. (1)其中最常用的就是网络连接是否正常的检测,具体的代码如下:ConnectivityManager con ...

  5. Android 中网络连接检测和使用ping检测网络是否可访问

    Android开发中网络相关的检测包括网络是否正常连接和网络已连接但是否可以正常访问两类. (1)其中最常用的就是网络连接是否正常的检测,具体的代码如下: ConnectivityManager co ...

  6. 通过ping检测网络故障的典型次序

    网络设置维修故障: 正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题:如果某些Ping命令 ...

  7. ping检测网络连接异常

    一般来说当出现网络无法连接时,习惯性的用ping命令来ping某个ip地址,从而判断网络连接是否正常,但是ping如何来判断的呢?我们可以用下列四步骤来检验网络工作情况. Ping 127.0.0.1 ...

  8. golang的ping检测网络实现

    golang ping 服务器,可以用系统调用也可以用go内置的库. 系统调用 func NetWorkStatus() bool {cmd := exec.Command("ping&qu ...

  9. qt、c++实现ping,检测网络连通性

    windos平台Qt实现ping检测网络连通性 #include <QApplication> #include <Windows.h> #include <Sensap ...

最新文章

  1. 讯飞智慧餐厅(安徽赛区)比赛通知
  2. SQL Server 2008 复习(一)
  3. 15种主要编程语言介绍及应用场合
  4. dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?
  5. 使用DbContextPool提高EfCore查询性能
  6. mysql space id_MySQL8.0新特性:增加系统文件追踪space ID和物理文件的映射-阿里云开发者社区...
  7. WWDC20中iOS的改变
  8. AI智能电话机器人源码搭建的原理与功能
  9. webqq机器人java_一步一步来做WebQQ机器人-(二)(第一次登陆)
  10. 神经网络电子书,神经网络入门书
  11. 我们试用了市面上几款微信自动化软件,哪家弱哪家强?
  12. 台式计算机ddr3内存条工作电压,DDR3存储空间频率都是有多少的,工作电压是多少?...
  13. HDU6080(很水的计算几何+floyd)
  14. dfs之解救小哈-c语言
  15. CentOS的下载与安装
  16. vue-i18n 用法
  17. COB,COF,COG区别
  18. Spring Security (一) : 设置登录账号密码的三种方式
  19. nvme固态硬盘安装win10填坑记
  20. Mac OS X 背后的故事(六)Cordell Ratzlaff 引发的 Aqua 革命

热门文章

  1. WPS Office应用大全
  2. 哪款蓝牙耳机性价比最高?2023性价比高的蓝牙耳机推荐
  3. Java使用POI将doc文档转为Html
  4. 我没有基础,能学会Python吗?
  5. 人工智能有哪些运用场景?有什么实际用途?
  6. 从磁盘到B树到B+树
  7. 浪涌、群脉冲、ESD等级标准
  8. java 使用poi将PPT转为图片,在线预览PPT
  9. 大学计算机第四讲答案,大学职业生涯规划课第四讲答案
  10. 微信小程序拼团进度,显示当前刻度,未到刻度点时显示在中间