Linux系统运维脚本:shell脚本查看一定网段范围在线网络设备的ip地址和不在线的网络设备的数量(查看在线和不在线网络设备)

文章介绍了在Linux系统中如何通过ping命令检测网络设备在线状态,并提供了一个bash脚本示例,用于遍历IP地址范围,统计在线和不在线的主机数量。
摘要由CSDN通过智能技术生成

目                     录

一、需求说明

二、解决方案

(一)解决思路

(二)方案

三、脚本程序实现

(一)脚本代码和解释

1、脚本代码

2、代码解释

(二)脚本验证

1、脚本编辑

2、给予执行权限

四、扩展




一、需求
说明

      一个网络中,经常会出现不知道一个主机、或者一个设备的IP地址,但是我们知道他在哪个范围。在windows系统中,有一些工具可以实现,但是在linux中,如何能快速实现呢?更进一步,如何能够统计出在线网络设备和不在线网络设备的数量呢?

二、解决方案

(一)解决思路

        查找某个设备是否在线,也就是看它是否正常在运行,我们最常用的是ping命令。大部分的网络设备都是可以进行ping回应的,ping不需要开任何端口,工作在IP层。所以,我们可以在脚本中查看ping的成功与否,来判断设备是否在线。

(二)方案

       (1)定义IP地址的范围

       (2)编写循环遍历语句

       (3)在循环语句中,遍历所有的ip地址,并ping这些地址

       (4)根据成功与否,来判断是否在线?同时通过累加,统计在线和不在线的数量。

三、脚本程序实现

        直接把脚本写出来,分享给大家。

(一)脚本代码和解释

1、脚本代码

        如下为编写的bash代码:

#!/bin/bash
ip=192.168.1.
j=0
k=0
for i in `seq 3 102`
do
ping -c 3 $ip$i &> /dev/null
if [ $? -eq 0 ];then
echo 在线的主机有:$ip$i
let k++
else
let j++
echo $ip$i >> /tmp/ip.txt
date >> /tmp/ip.txt
fi
done
echo 不在线的主机台数有 $j
echo 在线的主机台数有 $k

2、代码解释

(1)ip=192.168.1.:定义一个变量ip,并赋值为192.168.1.。

(2)j=0:定义一个变量j,并初始化为0。这个变量主要用于跟踪不在线的主机数量。

(3)k=0:定义一个变量k,并初始化为0。这个变量主要用于跟踪在线的主机数量。

(4)for i in seq 3 102``:这是一个for循环,使用seq命令生成从3到102的数字序列,每个数字都赋值给变量i。

(5)do:for循环的开始。

(6)ping -c 3 $ip$i &> /dev/null:使用ping命令检查主机是否在线。-c 3参数表示发送3个ping请求。$ip$i是将ip变量和i变量的值连接起来,形成完整的IP地址。&> /dev/null是将所有的输出(标准输出和标准错误)都重定向到/dev/null,也就是忽略所有的输出。

(7)if [ $? -eq 0 ];then:$?是一个特殊的变量,它保存了上一个命令的退出状态。如果ping命令成功(即主机在线),它的退出状态是0。

(8)echo 在线的主机有:$ip$i:如果主机在线,输出该主机的IP地址。

(9)let k++:将变量k的值加1,用于跟踪在线的主机数量。

(10)else:如果主机不在线...

(11)let j++:将变量j的值加1,用于跟踪不在线的主机数量。

(12)echo $ip$i >> /tmp/ip.txt:将不在线的主机的IP地址追加到/tmp/ip.txt文件中。

(13)date >> /tmp/ip.txt:将当前的日期也追加到/tmp/ip.txt文件中。

(14)fi:if语句的结束。

(15)done:for循环的结束。

        在执行完这个脚本后,你会在/tmp/ip.txt文件中看到所有不在线的主机的IP地址和它们被检测为不在线的日期。

(二)脚本验证

1、脚本编辑

        使用编辑器,比如vi,把代码输入进去;

        保存这个脚本到一个文件中,比pc_online.sh

2、给予执行权限

      chmod +x w pc_online.sh

3、运行脚本,查看效果

     可以运行这个脚本来检查进程的运行情况,如下:

[root@localhost home]# sh pc_online.sh
在线的主机有:192.168.1.3
在线的主机有:192.168.1.5
在线的主机有:192.168.1.6
在线的主机有:192.168.1.8
在线的主机有:192.168.1.23
在线的主机有:192.168.1.37
在线的主机有:192.168.1.39
在线的主机有:192.168.1.40
在线的主机有:192.168.1.41
在线的主机有:192.168.1.44
在线的主机有:192.168.1.48
在线的主机有:192.168.1.49
在线的主机有:192.168.1.54
在线的主机有:192.168.1.58
在线的主机有:192.168.1.68
在线的主机有:192.168.1.89
在线的主机有:192.168.1.100
在线的主机有:192.168.1.101
在线的主机有:192.168.1.102
在线的主机台数有 19
不在线的主机台数有 81

[root@localhost home]#

四、扩展

        在实际使用中,你可能查看其他网段特定范围的主机情况,你可稍微做些修改,就可以适合您的应用了。比如,也可以查看192.1.10.1~254,你可以更改如下两行命令即可:

ip=192.1.10.

for i in `seq 1 254`

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Linux系统运维是一个广泛而庞大的领域,涉及到各种技术和工具。从入门到企业实战的过程需要掌握一系列的知识和技能。 首先,入门阶段需要了解Linux的基本概念和特点,学习常用的命令和操作技巧。可以通过阅读相关书籍或者在线教程来学习,也可以通过参加培训课程来系统性学习。 在掌握了基础知识之后,需要进一步学习Linux系统的安装、配置和管理。这包括对硬件环境的了解,系统安装过程的实践,以及对各种配置文件和系统组件的掌握。 接下来,需要学习Linux系统的网络配置和服务管理。这包括理解网络的概念和协议,掌握网络配置的方式和方法,以及学习如何安装和管理各种网络服务,如Web服务器、邮件服务器等。 同时,必须熟悉Linux系统的安全管理和备份恢复。这包括理解系统安全的基本原理和方法,学会进行用户权限管理、防火墙配置和漏洞扫描等操作;同时,还需要构建合理的备份策略,定期备份系统和数据,并掌握恢复操作。 最后,进入企业实战阶段,需要学习和掌握大规模Linux系统的集中管理和自动化运维技术。这包括理解企业级Linux系统的架构和配置管理工具,学习如何使用脚本和自动化工具来管理和维护系统。 总之,Linux系统运维是一个学习和实践相结合的过程,需要不断地积累和提升知识和技能。通过不断的学习和实践,不仅可以应对各种常见的运维问题,还可以提高系统的稳定性和可靠性,为企业的业务发展提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值