Linux脚本编写—检测内网主机存活状态(语句:if+for+while)

Linux脚本编写—检测内网主机存活状态(语句:if+for+while)涉及知识 Linux shell 脚本 条件 if 语句的简单使用 实列 孤城 286 的博客 CSDN 博客 一 ping 操作的修饰 二 简单编写 三 优化 局限性 循环语句的介绍 1 for 和 wile

大家好,我是讯享网,很高兴认识大家。

涉及知识: Linux—shell脚本(条件if语句的简单使用)【实列】_孤城286的博客-CSDN博客

一、ping 操作的修饰:

二、简单编写:

三、优化:

—局限性:

—循环语句的介绍:

(1)for 和 wile 的区别

(2)for格式:

(3)while格式:

四、 再升级:

(1)配置环境: 

(2) 实现方式一:for实现:

(3) 实现方式二:while实现


一、ping 操作的修饰:

  • -c 指定其发送几个包
  • -i 发间隔时间
  • -w 等待响应时间
  • &> 文件 将前面的输出结果导入到别的地方(我们要将其输出的结果不显示)


讯享网

ping -c2 -i0.2 -w2 12.34.56.78 &> /dev/null

讯享网

———————————————————————————————————————————————————————— 

二、简单编写:

  • 需求:指定具体的IP地址,非交互化
讯享网[root@localhost poem]# vim ping.sh ——创建编写文件 1 #!/bin/bash 2 if `ping -c2 -i0.2 -w2 192.168.123.124 &> /dev/null` 3 then echo "yes" 4 else echo "no" 5 fi [root@localhost poem]# chmod +x ping.sh ——赋权 [root@localhost poem]# ./ping.sh ——执行 no ——输出结果 [root@localhost poem]# 

输出结果为 no ,表示该主机不存在或未开启(未存活)

验证成功!!!

—————————————————————————————————————————————————————————— 

三、优化:

  • 需求:使其更加人性化,(IP地址由自己输入)
 1 #!/bin/bash 2 read -p "please input ipaddr:" IP 3 if `ping -c2 -i0.2 -w2 $IP &> /dev/null` 4 then echo "yes" 5 else echo "no" 6 fi 

 测试成功!!!

———————————————————————————————————————————————————————— 

—局限性:

我们测试一个主机可以,但是一个网段就不行了

—循环语句的介绍:

(1)for 和 wile 的区别

  • for 根据循环的次数(取值列表)
  • 循环 wile 根据条件循环

(2)for格式:

(3)while格式:

 —————————————————————————————————————————————————————————

四、 再升级:

  • 继续我们回到前面的探测主机存活,这一次我们要实现在真实的环境中,探测 局域网的主机存活状态

(1)配置环境: 

——将我们的网络属性配置到桥接模式

 

—— 修改网卡配置:

讯享网vim /etc/sysconfig/network-scripts/ifcfg-ens33

 

——重启网卡 ifdown ens33 ifup ens33

 

 ——主机地址:

(2) 实现方式一:for实现:

讯享网[root@localhost poem]# vim ping.sh 1 #!/bin/bash 2 NET=10.168.1. 3 for IP in {100..115} 4 do 5 if `ping -c2 -i0.2 -w2 $NET$IP &> /dev/null` 6 then echo -e "$NET$IP is \033[31mup\033[0m" (修改输出颜色) 7 else echo -e "$NET$IP is \033[32mdown\033[0m" (修改输出颜色) 8 fi 9 done 

可以用于网络嗅探:

(3) 实现方式二:while实现

[root@localhost poem]# vim ping.sh 1 #!/bin/bash 2 NET=10.168.1. 3 IP=100 4 while [ $IP -lt 115 ] 5 do 6 let IP++ 7 if `ping -c2 -i0.2 -w2 $NET$IP &> /dev/null` 8 then echo -e "$NET$IP is \033[31mup\033[0m" 9 else echo -e "$NET$IP is \033[32mdown\033[0m" 10 fi 11 done 

 实现成功!!!

小讯
上一篇 2025-02-22 07:56
下一篇 2025-01-28 14:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15797.html