shell脚本编写-测试同一网段内主机是否在线

除了可以使用ansible自动化运维工具判断主机是否在线以外,还可以通过编写Shell脚本来实现。

1、编写脚本

#! /bin/bash
#测试192.168.81.0/24网段中哪些主机处于开机状态,哪些主机处于关机状态# #方法一:使用for循环判断
# for i in {1..254}
# do
#     ping -c 2 $i 0.3 -w 1 192.168.81.$i &>/dev/null#     if [ $? -eq 0 ];
#     then 
#         echo " 192.168.81.81.$i is up"
#     else    
#          echo " 192.168.81.$i is down "
#     fi 
# done# #方法二:使用while循环判断
# i=1
# while [ $i -le 254 ]
# do
#    ping -c 2 -i 0.3 -w 1 192.168.81.$i &>/dev/null
#    if [ $? -eq 0 ]
#    then 
#       echo " 192.168.81.$i is up "
#     else
#        echo " 192.168.81.$i is down "
#     fi 
#     let i++
# done #方法三:使用状态(多进程)判断
#自定义一个函数 
myping ( ) {ping -c 2 -i 0.3 -w 1 $1 &>/dev/nullif [ $? -eq 0 ];then echo "192.168.81.$1 is up "else echo " 192.168.81.$i is down "fi 
}
# $1 是函数的第一个参数,在这表示要传入的IP地址参数for i in {1..254}
domyping "$i"  
done 

2、运行checknetwork.sh脚本 

3、总结

通过对比发现,使用which循环判断速度最慢,使用函数的方法判断速度最快。

`while` 循环和 `for` 循环的操作对象都是单个 IP 地址,每次循环都需要进行一次完整的 ICMP 请求及响应过程,速度相对较慢。
而使用函数并发地进行 ICMP 请求,可以同时测试多个 IP 地址的响应情况,从而提高测试速度。同时,使用函数操作也避免了循环时进行相同命令行的重复创建和销毁的过程,使网络延迟减小。
通过并发执行多个 ICMP 请求,可以让测试工作更快地完成。当测试的主机数量很大时,比如超过 1000 台,这种并发的方式会更为明显地展现出它的优势。当然,这种方式需要一些多线程或多进程的技巧来实现,例如使用函数、运行后台进程等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传统汽车空调系统工作原理

1.首先讲一个概念 液体变成气体:吸热 气体变成液体:放热 2.在汽车空调系统中热量的传递的介质不是水,而是氟利昂,简称:“氟”。 3.传统式汽车空调结构如下 该三个部件位于车头进气口位置 该部位位于汽车驾驶车厢前方…

【R语言从0到精通】-4-回归建模

通过之前的文章,我们已经基本掌握了R语言的基本使用方法,那从本次教程开始,我们开始聚焦如何使用R语言进行回归建模。 4.1 回归简介 回归分析是一种统计学方法,用于研究两个或多个变量之间的相互关系和依赖程度。它可以帮助我们了…

分布式任务调度工具 XXL-JOB

默认的账号密码是:admin/123456 一,部署docker容器 docker run \ -e PARAMS"--spring.datasource.urljdbc:mysql://192.168.150.101:3306/xxl_job?Unicodetrue&characterEncodingUTF-8 \ --spring.datasource.usernameroot \ --spring.dataso…

QT设计模式:外观模式

基本概念 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一群接口,从而简化了客户端与子系统之间的交互,这种方式隐藏了子系统的复杂性,使客户端更…

web server apache tomcat11-33-CDI

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

使用pytorch构建GAN网络并实现FID评估

上一篇文章介绍了GAN的详细理论,只要掌握了GAN,对于后面各种GAN的变形都变得很简单,基础打好了,盖大楼自然就容易了。既然有了理论,实践也是必不可少的,这篇文章将使用mnist数据集来实现简单的GAN网络&…

为什么使用httpClient发送x-www-form-urlencoded类型的请求时,必须要使用MultiValueMap来传参

大家好,我是G探险者。 今天主要介绍一下MultiValueMap和HashMap的区别。 事情起因是这样的,在我们项目code review的时候,客户方提了一个问题,说,你们在用restTemplate进行远程调用的时候,为啥使用MultiValueMap来传…

数据结构-线性表-应用题-2.2-7

将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表 使用了归并排序的思想 按顺序将两个顺序表表头较小的节点存入新的顺序表中,若一个表用完了,就把另一个表的剩下的部分加到新表中去 bool Merge(SeqList A,SeqList B,Seq…

docker部署elasticsearch7.7.0级拼音(pinyin)插件和分词(ik)插件

拉取并启动es docker run -d --namees -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" elasticsearch:7.7.0安装pinyin插件 下载pinyin插件 下载ik插件 上传插件到服务器 docker cp /path/to/elasticsearch-analysis-pinyin-7.7.0.zip elasticsearch…

免费分享一套微信小程序在线订餐(点餐)配送系统(SpringBoot+Vue),帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序在线订餐(点餐)配送系统(SpringBootVue),分享下哈。 项目视频演示 【免费】微信小程序在线订餐(点餐)配送系统(SpringBootVue) Java毕业设计_哔哩哔哩_bilibili【免费】微信小程序在…

Django中如何实现单元测试覆盖率报告?

在 Django 中可以使用 coverage 模块来实现单元测试覆盖率报告。下面是一个实现的步骤: 首先,在项目的根目录下,安装 coverage 模块: pip install coverage创建一个 .coveragerc 文件,用于配置 coverage 的一些参数。在…

91、动态规划-不同的路径

思路: 首先我们可以使用暴力递归解法,无非就是每次向下或者向右看看是否有解法,代码如下: public class Solution {public int uniquePaths(int m, int n) {return findPaths(0, 0, m, n);}private int findPaths(int i, int j,…

企业防泄露如何做到安全有效

随着信息时代的急速演进,企业的重要商业机密越来越多地以电子文档的形式存在。常见的CAD图纸、Office文档承载着公司的核心价值和竞争优势,同时也面临着前所未有的数据安全威胁。确保这些重要信息的文档安全已经成为每个企业必须直面的挑战。在这样的背景…

绝地求生:新型小队对决系统或将择日上线?

就在刚才,PUBG官博发布了一则短视频,视频内容为两只小队通过竞争积分排名产生不断地变化。 原文官博 视频内容 在这里我猜测为之前官方在2024工作计划视频中介绍过的新型小队对决系统: 据当时的介绍称:这个系统中,己方…

【牛客】【模板】差分

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分模板。 b[0]a[0]; b[1]a[1]-a[0]; b[2]a[2]-a[1]; ...... b[n-1]a[n-1]-a[n-2]; b[n]a[n]-a[n-1]; 差分标记:b[l]k,b…

【DevOps】深入剖析Elasticsearch的分片与副本对性能的影响

目录 一、分片 (Shards) 1、什么是分片? 2、分片的类型 3、分片对性能的影响 二、副本 (Replicas) 1、什么是副本? 2、副本对性能的影响 三、最佳实践 1、主分片数量的选择 2、副本分片的设置 3、监控和调整 4、考虑使用 Shrink 和 Split AP…

vue3中用 let a= b赋值会改变b的值

注意b是reactive const paramreactive({ pageSize:12, }) 在JavaScript中,基本类型(比如String,Number,Boolean,undefined,null)是按值传递的,这意味着当你将一个基本类型变量赋值给…

k8s部署Kubeflow v1.7.0

文章目录 环境介绍部署访问kubeflow ui问题记录 环境介绍 K8S版本:v1.23.17,需要配置默认的sc 参考:https://github.com/kubeflow/manifests/tree/v1.7.0 部署 #获取安装包 wget https://github.com/kubeflow/manifests/archive/refs/tag…

faiss 原理和使用总结

FAISS(Facebook AI Similarity Search)是由 Facebook AI Research 开发的一个高效的相似性搜索和密集向量索引库。它主要用于大规模向量搜索和高维数据的聚类。下面,我将为你概述 FAISS 的工作原理和使用方法。 ### 原理 1. **向量量化&…

致远M3 Session 敏感信息泄露漏洞复现

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台,提供全方位的企业移动业务管理,致力于构建以人为中心的智能化移动应用场景,促进人员工作积极性和创造力,提升企业效率和效能,是为企业量身定制的移动智慧协同平台。 0x02 漏洞概述 致远M3 server多个日志文…