首页 > 代码库 > shell 脚本:ping一个网段的所有ip 和 隔一秒显示当前的时间

shell 脚本:ping一个网段的所有ip 和 隔一秒显示当前的时间

环境是 centos7  /bin/bash

注意在复制测试时,务必将示例中的ip网段更改为自己的ip网段。

ctrl+z可以将脚本打入后台,然后查看进程kill掉。

1.

#!/bin/bash


for i in {1..254} #定义1到254   

do

HOST=192.168.168.$i

ping -c 2 $HOST &>/dev/null 

if [ $? -eq 0 ];then  # -eq 判断返回值是否为0 $?为0表示执行结果正确 

echo "$HOST IS UP"

else

echo "$HOST IS DOWN "

fi

done


2.

#!/bin/sh


ip="192.168.168."

for i in {1..254}  #定义1到254 个ip数

#for i in `seq 1 254` 也可以这样表示

do

  ping -c 2 $ip$i | grep -q ‘ttl=‘ && echo "$ip$i yes"|| echo "$ip$i no" 

#ping -c 2 ping2次 过滤输出结果中的 ttl= 如果有 ttl= 则输出 echo "$ip$i yes 反之 输出 no

done


3。

#!/bin/sh


ip=1 #说明起始ip

while [ $ip != 254 ];#ip的最大 

do 

ping 192.168.168.$ip -c 2 | grep -q  ‘ttl=‘  && echo "192.168.168.$ip yes" || echo "192.168.168.$ip no"

ip=`expr "$ip" "+" "1"` #每运行一次$ip + 1 

done


隔一秒显示当前的时间

#!/bin/bash

for now in {1..5000}; 

do 

echo "current time: $(date ‘+%T‘)"; #date中只取出时间参数

sleep 1; #延时一秒

done



shell 脚本:ping一个网段的所有ip 和 隔一秒显示当前的时间