標籤: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 和 隔一秒顯示當前的時間