详解Linux系统中ping和arping命令的用法
pg
pg 程序使用 ICMP 协议的强制回显请求数据报以使主机或网关发送一份 ICMP 的回显应答。回显请求数据报(" pgs ")含有一个 IP 及 ICMP 的报头,后跟一个``时间值关键字然后是一段任意长度的填充字节用于把保持分组长度为16的整数倍。以下是程序的选项
pg [ -LRUbdfnqrvR ] [ -c count ] [ -i wait ] [ -l preload ] [ -p pattern ] [ -s packetsize ]
参数
-c
count 在发送(和接收)了正好数量为 count 的回显应答分组后停止操作。在发送了 count 个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。
-d
在所用的套接字上使用SO_DEBUG 选项。
-f
以高速方式来作pg 。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。
-i
wait 在发送每个分组时等待 wait 个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能使用。
-l
preload 如果指定 preload ,那么 pg 程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。
-n
只以数字形式输出信息。这样就不尝试去查找主机名了。
-p
pattern 可以指定最多16个填充字节用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。例如``-p ff将使发出的分组都用全1填充数据区。
-q
静态输出。在程序启动和结束时只显示摘要行。
-R
记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的路由。很多主机忽略或禁用此选项。
-r
在所连接的网络上旁路正常的选路表,直接向主机发送分组。如果主机未处于直接相连的网络上,那么返回一个错误。此选项可用来通过无路由接口对一台主机进行检测(例如当接口已被routed 程序丢弃后)。
-s
packetsize 指定要发送数据的字节量。缺省值为 56 ,这正好在添加了 8 字节的 ICMP 首部后组装成 64 字节的 ICMP 数据报。
-v
详细模式输出。打印接收到的回显应答以外的ICMP分组。
-w
waitsecs 在 waitsecs 秒后停止 pg 程序的执行。当试图检测不可达主机时此选项很有用。
当用pg来隔离故障时,应在本地主机上运行,以检查本地网络接口有效 运行。然后,应该进一步检查主机和网关。计算出往返时间和分组丢失率。如 果收到重复的分组,虽然这些分组的往返时间要用于计算往返时间的最小/平均 /最大值,它们不应该算在刚才计算的丢失的分组中。当指定数量的分组已 经发送(和接收)时或如果程序被SIGINT信号终止,会显示一份简短的摘要。
如果pg程序根本没有收到任何返回分组,那它将以返回码1退出。出错时返回 2。否则返回0。这些值可能用于查看主机存在与否。
此程序专用于网络测试,度量和管理。因为它会使用网络的流量,在正常操作或 自动的脚本中使用它并不明智。
例1
例a,pg一下baidu
复制代码
[root@localhost ~]# pg baidu.
PING baidu. (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=54 time=3.51 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=54 time=6.03 ms
--- baidu. pg statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt m/avg/max/mdev = 3.515/4.775/6.036/1.262 ms
例b,指定次数和时间,间隔pg baidu
复制代码