您的位置:首页 > 运维架构 > Shell

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

2017-04-20 08:10 627 查看
环境是 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ping 脚本 shell