tft每日頭條

 > 生活

 > shell判斷一個ip地址的類型

shell判斷一個ip地址的類型

生活 更新时间:2024-07-21 08:15:22

序言:

Windows系統中批量Ping地址時我們常用PingInfoView工具,簡單方便實用;而linux中想批量pingIP地址,就得使用腳本了,這裡小編和大家分享一個ping腳本。

首先奉上shell腳本,不想編寫的可以私信聯系獲取shell腳本,直接拷貝到centos中運行。

#! /bin/bash

for i in `cat iplist`

do

ping=`ping -c 3 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`

if [ $ping -eq 0 ];then

echo ping $i ok

else

echo ping $i fail

fi

done

shell判斷一個ip地址的類型(shell腳本批量pingN個不連續的IP地址)1

命令解釋:

1、ping.sh腳本和腳本中要讀取IP地址的iplist文件在同一個目錄。

2、使用awk命令提取ping IP返回後丢失loss的百分比數字是100還是0。

ping.sh腳本第4行詳解:

shell判斷一個ip地址的類型(shell腳本批量pingN個不連續的IP地址)2

ps:這邊因為-c 3是ping3個包,且不考慮有丢包的情況,也可以直接-c 1,直接ping 1個包。

3、if語句是比較awk取的值是否為0的,也有比較100的,理論是一樣的。但是我自己測試ping IP地址有3種返回值。

第一種、網絡正常,0%丢包。

shell判斷一個ip地址的類型(shell腳本批量pingN個不連續的IP地址)3

第6列awk命令提取的值為0

第二種、網絡不通,100%丢包。

shell判斷一個ip地址的類型(shell腳本批量pingN個不連續的IP地址)4

第6列awk命令提取的值為100

第三種、網絡不通,100%丢包,但中間多了2列參數。

shell判斷一個ip地址的類型(shell腳本批量pingN個不連續的IP地址)5

第6列awk命令提取的值為 3綜上所述,awk命令第一次使用時取第6列值,且和數值0比較(if=0網絡ok,else網絡fail),前面兩種是沒問題,遇到第3種情況: 3是≠0的,滿足else條件,網絡fail;若awk取值與100比較(if=100網絡fail,else網絡ok),前面兩種是沒問題,那麼遇到第三種結果為: 3≠100,所以滿足else結果,網絡ok,但其實上圖的192.168.3.254是ping不通的。結論:所以if語句應該和數值0比較,這樣更準确。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved