极客进化岛
技术自由路

【shell案例】判断主机是否在线

原题

扫描192.168.31.0/24网络中哪些主机在线,如果在线,用绿色显示在线,如果不在线,用红色显示不在线

思路

  • 首先需要循环升目标主机的IP地址,生成方法就是通过{ }或者seq生成1到255的数字,然后将数字和192.168.31进行字符串组合。
  • 然后用ping命令来判断这个ip是否可以ping的通,在平的时候需要-c1和-w1
  • 最后根据判断结果输出信息

shell源码

方法一:

#!/bin/bash
str="192.168.31."
for num in {1..255}
do
    ip=${str}${num}
    if ping -c1 -w1 ${ip} &>/dev/null;then
         echo "$ip is online."
    else
         echo "$ip is offline"
    fi
done

方法二:

#!/bin/bash
str="192.168.31."
for num in {1..255}
do
    ip=${str}${num}
    ping -c1 -w1 ${ip} &>/dev/null
    num=$?
    if [ $num -eq 0 ];then
         echo "$ip is online."
    else
         echo "$ip is offline"
    fi
done

总结

这个题目在运维面试的时候经常遇到,大家一定要多写几遍,切实写熟练。

赞(0)
未经允许不得转载:极客进化岛 » 【shell案例】判断主机是否在线