linux ping 获取网络状态,Shell - 长 ping 脚本监控网络状态

目录

生产环境中, 网络是否稳定(网络时延)是一个很重要的指标. 为了方便检查网络时延的大小, 我们可以通过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

参考资料

版权声明

作者:

出处: 博客园

感谢阅读, 如果文章有帮助或启发到你, 点个[

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值