linux环境使用ping命令+时间戳记录到文件里面
生产环境中, 网络是否稳定(网络时延)是一个很重要的指标. 为了方便检查网络时延的大小, 我们可以通过ping命令实现长时间的网络监控。
一、ping命令的使用
1、 常用参数
-i: 每次执行ping操作的间隔时间, 默认是1s;
-c: 执行ping操作的次数, 默认是一直执行, 除非被中断;
-s:指定执行ping操作时发送的包的大小, 默认是56B, 添加报文头之后, 最终发送的是64B.
2、 使用示例#在终端ping某个地址,执行10次
#ping112.80.248.75-c10|awk'{print$0"\t"strftime("%H:%M:%S",systime())}'
#后台运行记录到文件里面,但终端不能断开的,语句如下:
nohupping112.80.248.75-c10|awk'{print$0"\t"strftime("%H:%M:%S",systime())}'>ping1.log&
2.1、日期时间在后面:#ping112.80.248.75|awk'{print$0"\t"strftime("%Y-%m-%d%H:%M:%S",systime());fflush()}'>>long_ping.txt
PING112.80.248.75(112.80.248.75)56(84)bytesofdata.-04-0316:59:44
64bytesfrom112.80.248.75:icmp_seq=1ttl=55time=3.66ms-04-0316:59:44
64bytesfrom112.80.248.75:icmp_seq=2ttl=55time=4.90ms-04-0316:59:45
64bytesfrom112.80.248.75:icmp_seq=3ttl=55time=4.02ms-04-0316:59:46
2.2、日期时间在前面:#ping112.80.248.75|awk'{printstrftime("%Y.%m.%d%H:%M:%S",systime())"\t"$0;fflush()}'>>long_ping.txt
.04.0317:00:36PING112.80.248.75(112.80.248.75)56(84)bytesofdata.
.04.0317:00:3664bytesfrom112.80.248.75:icmp_seq=1ttl=55time=3.22ms
.04.0317:00:3764bytesfrom112.80.248.75:icmp_seq=2ttl=55time=3.72ms
.04.0317:00:3864bytesfrom112.80.248.75:icmp_seq=3ttl=55time=4.91ms
.04.0317:00:3964bytesfrom112.80.248.75:icmp_seq=4ttl=55time=3.95ms
注意:使用fflush(),不然文件不会有信息,因为awk也是有缓存的。
下面未加fflush(),执行命令生成文件会等一会才会有信息打印到文件里ping112.80.248.75|awk'{printstrftime("%Y.%m.%d%H:%M:%S",systime())"\t"$0}'>>long_ping.txt&
二、通过脚本记录时间戳
为了方便后期查看, 也防止退出终端时命令被中断, 我们可以通过后台运行命令(脚本)的方式进行操作.
脚本内容如下:#vilong_ping.sh
#!/bin/bash
ping112.80.248.75|awk'{print$0"\t"strftime("%Y-%m-%d%H:%M:%S",systime());fflush()}'>>long_ping.txt
注意: 只有当脚本运行结束(或被kill掉),awk命令 才会将结果输出到文件中.
为防止脚本被中断, 可以通过nohup令脚本在后台执行:nohupshlong_ping.sh&
要结束后台进程, 可通过下述方式查找并kill:#ps-ef|greplong
root1734117236016:46pts/300:00:00shlong_ping.sh
root1735117236016:47pts/300:00:00grep--color=autolong
如果觉得《linux ping监控脚本 Shell长ping脚本监控网络状态》对你有帮助,请点赞、收藏,并留下你的观点哦!