目录
1 ping 命令的使用
1.1 常用参数
1.2 使用示例
2 通过脚本记录时间戳
生产环境中, 网络是否稳定 (网络时延) 是一个很重要的指标. 为了方便检查网络时延的大小, 我们可以通过 ping 命令实现长时间的网络监控.
1 ping 命令的使用
1.1 常用参数
-i: 每次执行 ping 操作的间隔时间, 默认是 1s;
-c: 执行 ping 操作的次数, 默认是一直执行, 除非被中断;
-s: 指定执行 ping 操作时发送的包的大小, 默认是 56B, 添加报文头之后, 最终发送的是 64B.
1.2 使用示例
- # 在终端 ping 某个地址, 执行 3 次, 每次间隔 2 秒, 每次发送 10KB 的数据:
- [root@localhost ~]# ping -c 3 -i 2 -s 10240 172.16.22.132
- # 结果如下:
- PING 172.16.22.132 (172.16.22.132) 10240(10268) bytes of data.
- 10248 bytes from 172.16.22.132: icmp_seq=1 ttl=64 time=0.294 ms
- 10248 bytes from 172.16.22.132: icmp_seq=2 ttl=64 time=0.383 ms
- 10248 bytes from 172.16.22.132: icmp_seq=3 ttl=64 time=0.391 ms
- --- 172.16.22.132 ping statistics ---
- 3 packets transmitted, 3 received, 0% packet loss, time 3999ms
- rtt min/avg/max/mdev = 0.294/0.356/0.391/0.043 ms
2 通过脚本记录时间戳
很多时候, 我们除了监控网络时延的大小, 还想知道网络发生抖动时的具体时间 -- 可以将 ping 的结果通过管道进行处理.
为了方便后期查看, 也防止退出终端时命令被中断, 我们可以通过后台运行命令 (脚本) 的方式进行操作.
脚本内容如下:
- #!/usr/bin/sh
- # ping 86400 次, 默认间隔 1 秒, 也就是 24 小时
- ping -c 86400 -i 1 -s 10240 172.16.22.131 | awk '{ print $0"\t"strftime("%D_%H:%M:%S",systime()) }'> ping_result.log
注意: 只有当脚本运行结束(或被 kill 掉), awk 命令 才会将结果输出到文件中.
为防止脚本被中断, 可以通过 nohup 令脚本在后台执行:
nohup sh long_ping.sh &
要结束后台进程, 可通过下述方式查找并 kill:
- [root@localhost ~]# ps aux | grep long
- root 36538 0.0 0.0 113120 1344 pts/3 S 16:02 0:00 sh long_ping.sh
- root 37451 0.0 0.0 112652 960 pts/3 S+ 16:03 0:00 grep --color=auto long
- [root@localhost ~]# kill -9 36538
参考资料
CentOS 长 ping 输出日志的脚本
来源: https://www.cnblogs.com/shoufeng/p/11962886.html