语法:ping [options] destination

  选项:

    -c count  发送ping包的数量

    -i interval  发送两个ping包间的间隔

    -I interface_address  设置源地址(可以是ip、可以是设备名)

    -n  不反解析地址信息

    -q  安静模式,不显示每次ping包的结果,仅显示汇总信息

    -t ttl  ttl

    -w deadline  响应包超时,单位秒

  返回值:

    如果ping根本没有收到任何响应包,退出码为1。如果同时指定了发送包的数目、超时,响应包不够、超时,退出码为1;其他错误,返回2。

命令ping

  设备调试时,每次要检验地址能否ping通,一主一备两组地址,每组俩ip。要是脚本执行一次,3个月不用频繁敲键盘,其实也挺好。

  ping超时1s,测试不通时超时增加1s;测试通时,重新设定为1s超时。每个地址只发一次测试包。

#!/bin/sh#declare -i K=0declare -i T=1IP1=190.1.1.5IP2=190.1.1.6IP3=190.1.2.5IP4=190.1.2.6PING="ping -c1 -w$T"#pingIP(){        ${PING} $1 &> /dev/null        if [ $? -eq 0 ]        then                echo "Ip $1 connectivity is normal."                [ $T -gt 1 ] && $(let T=1)        else                echo "Ip $1 is unreachable."                let T+=1        fi}#while [ $K -lt 4 -a $T -lt 4 ]do        echo "$K"        pingIP $IP1        pingIP $IP2        pingIP $IP3        pingIP $IP4        let K+=1done

  执行结果(第一组俩ip可以连通)

# ./ping.sh0Ip 190.1.1.5 connectivity is normal.Ip 190.1.1.6 connectivity is normal.Ip 190.1.2.5 is unreachable.Ip 190.1.2.6 is unreachable.1Ip 190.1.1.5 connectivity is normal.Ip 190.1.1.6 connectivity is normal.Ip 190.1.2.5 is unreachable.Ip 190.1.2.6 is unreachable.


本机禁ping

# cd /proc/sys/net/ipv4# ls -l icmp_*# cat icmp_*# echo 1 > icmp_echo_ignore_all# cat icmp_*