比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下:

  1. [root@uatdns01 opt]# vim /opt/ping.sh
  2. #!/bin/bash
  3. . /etc/init.d/functions
  4. for var in {1..254};
  5. do
  6. ip=172.16.50.$var
  7. ping -c2 $ip >/dev/null 2>&1
  8. if [ $? = 0 ];then
  9. action "$ip" /bin/true
  10. else
  11. action "$ip" /bin/false
  12. fi
  13. done
  14.  
  15. [root@uatdns01 opt]# chmod 755 /opt/ping.sh
  16. [root@uatdns01 opt]# sh /opt/ping.sh
  17. 172.16.50.1 [ OK ]
  18. 172.16.50.2 [FAILED]
  19. 172.16.50.3 [FAILED]
  20. 172.16.50.4 [FAILED]
  21. 172.16.50.5 [FAILED]
  22. .........
  23. .........
  24. 172.16.50.99 [ OK ]
  25. 172.16.50.100 [ OK ]
  26. 172.16.50.101 [ OK ]
  27. 172.16.50.102 [ OK ]
  28. 172.16.50.103 [ OK ]
  29. 172.16.50.104 [ OK ]
  30. 172.16.50.105 [ OK ]
  31. 172.16.50.106 [ OK ]
  32. 172.16.50.107 [ OK ]
  33. 172.16.50.108 [ OK ]
  34. 172.16.50.109 [ OK ]
  35. 172.16.50.110 [ OK ]
  36. 172.16.50.111 [FAILED]
  37. 172.16.50.112 [ OK ]
  1. 获取172.16.60.0/24网段可用ipshell脚本
  2. [root@ansible-server ~]# cat ip_ping.sh
  3. #!/bin/bash
  4. ip=1
  5. while [ $ip != "254" ]; do
  6. ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no"
  7. ip=`expr "$ip" "+" "1"`
  8. done
  9.  
  10. 执行:
  11. [root@ansible-server ~]# sh ip_ping.sh
  12. 172.16.60.1 yes
  13. 172.16.60.2 no
  14. 172.16.60.3 no
  15. .............
  16. 172.16.60.24 yes
  17. 172.16.60.25 yes
  18. 172.16.60.26 no
  19. .............
  20.  
  21. 如果只打印可用ip, 则脚本修改如下:
  22. [root@ansible-server ~]# cat ip_ping.sh
  23. #!/bin/bash
  24. ip=1
  25. while [ $ip != "254" ]; do
  26. ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1
  27. ip=`expr "$ip" "+" "1"`
  28. done
  29.  
  30. 执行:
  31. [root@ansible-server ~]# sh ip_ping.sh
  32. 172.16.60.1 yes
  33. 172.16.60.21 yes
  34. 172.16.60.22 yes
  35. 172.16.60.23 yes
  36. 172.16.60.24 yes
  37. 172.16.60.25 yes
  38. 172.16.60.31 yes
  39. 172.16.60.32 yes
  40. 172.16.60.33 yes
  41. 172.16.60.34 yes
  42. 172.16.60.35 yes
  43. 172.16.60.36 yes
  44. 172.16.60.37 yes
  45. 172.16.60.38 yes
  46. 172.16.60.39 yes
  47.  
  48. 获取172.16.50.0/24, 172.16.51.0/24, 172.16.60.0/24 三个网段的可用ip
  49. [root@ansible-server ~]# cat ip_ping.sh
  50. #!/bin/bash
  51. ip=1
  52. while [ $ip != "254" ]; do
  53.  
  54. ping 172.16.50.$ip -c 2 | grep -q "ttl=" && echo "172.16.50.$ip yes" || echo "172.16.50.$ip no" >/dev/null 2>&1
  55. ip=`expr "$ip" "+" "1"`
  56.  
  57. ping 172.16.51.$ip -c 2 | grep -q "ttl=" && echo "172.16.51.$ip yes" || echo "172.16.51.$ip no" >/dev/null 2>&1
  58. ip=`expr "$ip" "+" "1"`
  59.  
  60. ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1
  61. ip=`expr "$ip" "+" "1"`
  62.  
  63. done
  64.  
  65. 执行:
  66. [root@ansible-server ~]# sh ip_ping.sh
  67. 172.16.50.1 yes
  68. 172.16.51.11 yes
  69. 172.16.50.16 yes
  70. 172.16.50.19 yes
  71. 172.16.51.20 yes
  72. 172.16.60.21 yes
  73. 172.16.50.22 yes
  74. 172.16.60.24 yes
  75. 172.16.50.25 yes
  76. 172.16.50.31 yes
  77. 172.16.60.33 yes
  78. 172.16.51.35 yes
  79. 172.16.60.36 yes
  80. 172.16.60.39 yes
  81. 172.16.51.41 yes
  82. 172.16.51.44 yes
  83. 172.16.50.52 yes
  84. 172.16.51.53 yes
  85. 172.16.50.55 yes
  86. 172.16.50.58 yes
  87. 172.16.51.65 yes
  88. ..................

Linux下批量ping某个网段ip的脚本的更多相关文章

  1. Linux下批量ping某个网段的脚本

    比如现在需要对192.168.0.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,也可以通过nmap接参数来检查 ping命令脚本如下: [root ...

  2. Linux下多网卡同网段多IP网络分流设定方法

    Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...

  3. Windows 和  Linux 下 禁止ping的方法

    Windows 和Linux 下 禁止ping的方法 目的: 禁止网络上的其他主机或服务器ping自己的服务器 运行环境: Windows 03.08  linux 方法: Windows 03下: ...

  4. Linux下批量管理工具pssh安装和使用

    Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...

  5. RedisCluster linux下批量删除 key

    Redis Cluster linux下批量删除键 说明 使用时不支持传入参数 , 如 redis_batch_del.sh , 因为在linux下 会自动将 * 解析为当前目录下所有文件名, 目前还 ...

  6. Linux 下获取LAN中指定IP的网卡的MAC(物理地址)

    // all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include <memory.h>#include < ...

  7. 虚拟机Linux下一直获取不到ip怎么办

    虚拟机Linux下一直获取不到ip怎么办 Ifconfig -a 只显示了本地的ip127.0.0.1 和另一个eth1 但是找不到ip地址. 需要做的是: 申请ipdhclient eth1 另外释 ...

  8. python实现本地批量ping多个IP

    本文主要利用python的相关模块进行批量ping ,测试IP连通性. 下面看具体代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impor ...

  9. Linux下批量修改文件及文件夹所有者及权限

    Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt ...

随机推荐

  1. sql server自定义函数学习笔记

    sql server中函数分别有:表值函数.标量函数.聚合函数.系统函数.这些函数中除系统函数外其他函数都需要用户进行自定义. 一.表值函数 简单表值函数 创建 create function fu_ ...

  2. C#异常--System.IO.FileLoadException:“混合模式程序集是针对“v2.0.50727”版的运行时生成的错误

    异常信息: System.IO.FileLoadException:“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集.” ...

  3. CSS图片水平垂直居中

    Html: <div id="></img></div> </div> CSS: #MainContent { display:table-c ...

  4. Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)

    本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...

  5. Windows批处理 -- 打造MySQLCleaner

    批处理打造MySQLCleaner 1. 简介       在我们卸载MySQL数据库的时候,往往除了需要卸载软件,还需要删除各种注册表信息,隐藏文件,卸载服务,否则当我们再次安装MySQL时就会出现 ...

  6. Linux结构目录

    linux结构目录 Linux中有一句话叫做:一切皆文件. 下面来了解一下这些文件. 首先看一下Linux根目录下结构: bin:存放二进制可执行文件,一般常用命令都存放在这里. boot:存放系统启 ...

  7. if语句(初学者)

    用if语句可以构成分支结构.它根据给定的条件进行判断,以决定执行某个分支程序段.C语言的if语句有三种基本形式. 1.基本形式:if(表达式)语句 其语义是:如果表达式的值为真,则执行其后的语句,否则 ...

  8. python框架面试题联系

    1.对 MVC,MVT 解读的理解? M:Model,模型,和数据库进行交互 V:View,视图,负责产生 Html 页面 C:Controller,控制器,接收请求,进行处理,与 M 和 V 进行交 ...

  9. Ajax进阶之原生js与跨域jsonp

    什么是Ajax? 两个数求和: 用Jquery和数据用json格式 viws函数: from django.shortcuts import render,HttpResponse # Create ...

  10. ECS简述

    一.查看ECS实例 使用场景 •实例的日常维护 •实例运行状态和详细信息的查看 二.启动ECS实例 使用场景 •实例停止运行之后的再次启动 三.停止.重启ECS实例 使用场景 •实例运行的服务暂停时停 ...