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

news2024/11/28 0:35:14

除了可以使用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/null
    if [ $? -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}
do
   myping "$i"  
done 



 





2、运行checknetwork.sh脚本 

3、总结

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

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

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

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

相关文章

亿发解密:数据中台管理系统,引领企业数字化转型的智能数据体系

在当今数字化时代,数据已成为企业发展的关键驱动力。为了更好地利用数据,提升业务水平,企业需要建立一套完备的数据管理体系,而数据中台便应运而生。 什么是数据中台 数据中台是集方法论、组织和工具于一体的智能大数据体系。它…

通信录的动态版本

一. 增加需求 在学习了动态开辟内存之后 我们对于通讯录产生了新的需求 要求我们做出一个动态增长的版本 即 随着我们储存联系人的增加 储存的空间增加 要求 : 1 初始空间为3 2 每次达到上限之后 扩容两个内存 二. 动手实施 我们首先要创建一个结构体 结构体…

计算图:深度学习中的链式求导与反向传播引擎

在深度学习的世界中,计算图扮演着至关重要的角色。它不仅是数学计算的图形化表示,更是链式求导与反向传播算法的核心。本文将深入探讨计算图的基本概念、与链式求导的紧密关系及其在反向传播中的应用,旨在为读者提供一个全面而深入的理解。 计…

Springboot项目学习之各组件的用法和逻辑结构

1.Controller层(Controller): 也称为前端控制器或请求处理器,它是项目与用户交互的入口。Controller接收HTTP请求,解析请求参数,调用Service层处理业务逻辑,并返回响应给客户端。 Controller通…

Python实现txt转Excel(坐标)

import pandas as pddef txt_to_excel(txt_file, excel_file):# 读取 txt 文件with open(txt_file, r) as f:lines f.readlines()# 将每行数据分割成多个单元格data []for line in lines:row line.strip().split( )data.append(row)# 将数据保存到 Excel 文件df pd.DataFra…

阿里巴巴alibaba国际站API接口:商品详情和关键词搜索商品列表

阿里巴巴国际站(Alibaba.com)提供了API接口供开发者使用,以实现与平台的数据交互。然而,由于API的详细内容和调用方式可能会随着时间和平台更新而发生变化,以下是一个概述和一般性的指导,关于如何使用阿里巴…

代码随想录第52天|300.最长递增子序列 718. 最长重复子数组

300.最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode) 代码随想录 (programmercarl.com) 动态规划之子序列问题,元素不连续!| LeetCode:300.最长递增子序列_哔哩哔哩_bilibili 给你一个整数数组 nums &#xff0…

xmind的13个快捷方式

1.新建导图 CtrlshiftN 2.编辑文字 空格键 3.插入图片 Ctrli 4. 插入主题 Enter键 5. 插入主题之前 ShiftEnter键 6. 插入子主题 Tab键 7. 放大导图 “Ctrl”“” 8. 缩小导图 “Ctrl”“-” 9. 复制 CtrlInsert 10. 粘贴 Shift Insert 11. 剪切 ShiftDelete 12. 截图 F7 13. 保…

神经网络怎么把隐含层变量融合到损失函数中?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Unity初级---初识生命周期

1. Awake() :唤醒函数,最先执行的函数,只执行一次,当脚本文件挂载的对象被激活时调用 2. OnEnable() ,OnDisable():当脚本启用和禁用时触发,可执行多次,触发的前提是脚本挂载的对象…

SolidWorks进行热力学有限元分析一、模型建立

1.话不多说按照我的操作来 2.这一步鼠标移到中心点直接拉就行 3.这里选单位,继续按照操作来 4.选中这个边,直接拉,输入尺寸后确定,其他边同理 5.鼠标右键设置厚度 6.右键零件,然后编辑材料,给他赋予你需要的…

纯血鸿蒙APP实战开发——折叠屏扫描二维码方案

折叠屏扫描二维码方案 介绍 本示例介绍使用自定义界面扫码能力在折叠屏设备中实现折叠态切换适配。自定义界面扫码使用系统能力customScan,其提供相机流的初始化、启动扫码、识别、停止扫码、释放相机流资源等能力。折叠屏折叠状态通过监听display的foldStatusCha…

【论文阅读】Fuzz4All: Universal Fuzzing with Large Language Models

文章目录 摘要一、介绍二、Fuzz4All的方法2.1、自动提示2.1.1、自动提示算法2.1.2、自动提示的例子2.1.3、与现有自动提示技术的比较 2.2、fuzzing循环2.2.1、模糊循环算法2.2.2、Oracle 三、实验设计3.1、实现3.2、被测系统和baseline3.3、实验设置以及评估指标 四、结果分析4…

Qt | QComboBox(组合框)

01、上节回顾 Qt 基础教程合集02、QComBox 一、QComboBox 类(下拉列表、组合框) 1、QComboBox 类是 QWidget 类的直接子类,该类实现了一个组合框 2、QComboBox 类中的属性 ①、count:const int 访问函数:int count() const; 获取组合框中的项目数量,默认情况下,对于空…

nginx 负载均衡、反向代理实验

nginx 负载均衡、反向代理实验 实验目的 理解概念:明确反向代理和负载均衡的基本概念及其在网络架构中的作用。 掌握技能:学习如何配置Nginx以实现反向代理和负载均衡功能。 实践应用:通过实际操作,体验Nginx如何提升Web服务的可…

246 基于matlab的交流电机动态方程

基于matlab的交流电机动态方程,用于交流电机动态分析。输入电机的额定功率(kW)、电机的额定转速(r/min)、转子外径(m)、铁心长(m)转子槽数、电机极对数 等参数,输出转速变化、力矩变化等结果。程序已调通,可直接运行。 246 交流电机动态 转速…

一堆自定义C#代码片段,让你开发效率飞涨

SharpBoxes 是一款用于 Visual Studio 的扩展,作者为本人; 该扩展旨在提高开发效率。它为开发人员提供了一组日常使用频率较高的代码片段,让你在编写代码时能够更快地插入常用的代码段。通过安装这个扩展,你可以使用快捷键轻松插…

笔记本连接不上远程桌面,笔记本无法连接远程桌面的可能原因及解决方法

在使用远程桌面功能时,笔记本无法成功连接的情况可能由多种原因引起。为了有效地解决这个问题,我们需要逐一排查这些可能的原因,并采取相应的解决措施。 首先,网络连接稳定性是远程桌面连接成功的关键。请确保笔记本和远程计算机之…

【数据结构】链表经典OJ题目练习(2)

面试题 02.02. 返回倒数第 k 个节点 - 力扣(LeetCode) 思路1:先计算出链表的长度,在将链表中的值存在数组中,在返回第k个节点。 思路2:利用快慢指针,先让快指针走k步,在让快慢指针分…

北京大学-知存科技存算一体联合实验室揭牌,开启知存科技产学研融合战略新升级

5月5日,“北京大学-知存科技存算一体技术联合实验室”在北京大学微纳电子大厦正式揭牌,北京大学集成电路学院院长蔡一茂、北京大学集成电路学院副院长鲁文高及学院相关负责人、知存科技创始人兼CEO王绍迪、知存科技首席科学家郭昕婕博士及企业研发相关负…