当前位置: 首页 > news >正文

高并发ping多台主机IP

简介

社区或者是大型公司往往有成千上万或者几百台设备,保持设备始终在线对网络运维人员来说至关重要,然而一个一个登录检查,或者一个一个ping并不明智,累人且效率极低,并出错率高。花钱买检测服务当我没说。

shell编程无处不在。

代码

ip.sh

#!/bin/bash
for i in {2..254}
do
for p in {2..254}
do{ip=192.168.$i.$pping -c1 -W1 $ip &>/dev/nullif [ $? -ne 0 ];thenecho "$ip" | tee -a ip.txtelseecho "$ip" >> successIP.txtfi
} &
done
done
wait
echo "command execution completed"

效果

bash ./ip.sh

终端显示ping失败的IP地址

内容太长,使用more ip.txt可显示一部分

ip.txt内容

ping成功的ip地址会输出到“successIP.txt”文本中

模拟的IP,就不展示了

说明

 代码共18行336字节,使用双for循环,替换C类内网IP192.168.*.*,-c1参数选项只ping一次,-W1参数选项只等待1s,ping的结果不显示,丢弃到字符设备文件null中,失败的IP地址使用| tee命令双向重定向到终端和ip.txt文本中,ping成功的ip地址使用追加重定向命令>>追加到successIP.txt文件中。

优化:代码设计使用双for循环,控制192.168后两个网段的可变数字,用变量i和p替代,使用集合将可变数字添加;使用一条if语句逻辑判断失败和成功结果,并将结果保存在txt格式文档中;使用"{} &"将if语句囊括在内,让程序在后台并发;使用wait命令等待程序所有ping都结束,打印最终的结果;

tips

大家可以试试动手运行下,中途停止运行可以在当前终端使用Ctrl键+Z强制终止程序运行,或者Ctrl+C强制终止程序运行;可能命令无法生效,可以再开一个终端输入如下命令强制终止:

  1. 当执行./ip.sh,再开一个终端,使用如下命令可查询并发进程ID

    pgrep -af "ip.sh"
    
  2. 使用 kill 命令终止所有这些进程:

    pkill -9 -f "ip.sh"
    

#这样可以一次性终止所有与特定脚本相关的进程,双引号“”的内容替换为自己的脚本名字(注意脚本文件所在路径是当前路径,如果不在当前路径,使用绝对路径

例:pkill -9 -f "/home/xiumo/Desktop/ip.sh"

 简单的事情简单化,复杂的事情也简单化,让运行更高效

http://www.lryc.cn/news/367673.html

相关文章:

  • 03 Linux 内核数据结构
  • 关于软件调用独显配置指引【笔记】
  • 正大国际期货:什么是主力合约?
  • codeforces round 949 div2
  • 分享美好,高清无阻 - 直播极简联网解决方案
  • 贪心算法-加油站
  • 【ArcGIS微课1000例】0116:将度-分-秒值转换为十进制度值(字段计算器VBA)
  • 【中国开源生态再添一员】天工AI开源自家的Skywork
  • 【机器学习300问】109、什么是岭回归模型?
  • FJSP:烟花算法(FWA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码
  • C++11 列表初始化(initializer_list),pair
  • Python3 笔记:字符串的 startswith() 和 endswith()
  • Web前端安全问题分类综合以及XSS、CSRF、SQL注入、DoS/DDoS攻击、会话劫持、点击劫持等详解,增强生产安全意识
  • 1.单选题 (2分)下列关于脚本的说法不正确的是( )。本题得分: 2分正确答案: A2.单选题 (2分)软件测试自动化的局限性不包含( )。本题得分: 2分
  • 【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数
  • 力扣1248.统计优美子数组
  • AI2THOR 2.1.0使用教程
  • 在Nginx中配置php程序环境。
  • !力扣70. 爬楼梯
  • Spring boot+vue前后端分离
  • Python基础总结之列表转字符串
  • 二分【1】二分查找框架 查找指定元素
  • Python 中如何使用 lambda 函数
  • 关于焊点检测(SJ-BIST)模块实现
  • 关于修改Python中pip默认安装路径的终极方法
  • android集成百度文心一言实现对话功能,实战项目讲解,人人都能拥有一款ai应用
  • 事件总线vueEvent
  • 设计模式之观察者模式ObserverPattern(十一)
  • JavaScript 编程语言【 数据类型】日期和时间
  • RabbitMQ简单使用方法,以异步处理日志为例: