1.ping和telnet
- todo:ping一个网段
- ping和telnet
- ping + ip: 查看某一个ip地址是否能够连通,如: ping 114.80.67.193
- telnet ip port : 查看某一个机器上的某一个端口是否可以访问,如:telnet 114.80.67.193 8080
- ping 常用指令:
- -i: 每次执行ping操作的间隔时间, 默认是1s;
-
-c: 执行ping操作的次数, 默认是一直执行, 除非被中断;
-
-s: 指定执行ping操作时发送的包的大小, 默认是56B, 添加报文头之后, 最终发送的是64B.
-
使用示例
# 在终端 ping 某个地址, 执行3次, 每次间隔2秒, 每次发送10KB的数据:
[root@localhost ~]# ping -c 3 -i 2 -s 10240 172.16.22.132
- ping 输出格式
输出格式:
下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:
- ① ping目标主机的域名和IP(ping会自动将域名转换为IP)
- ② 不带包头的包大小和带包头的包大小(参考“-s”参数)
- ③ icmp_seq:ping序列,从1开始;
- ttl:剩余的ttl;
- time: 响应时间,数值越小,联通速度越快;
- ④ 发出去的包数,返回的包数,丢包率,耗费时间;
- ⑤ 最小/最大/平均响应时间和本机硬件耗费时间;
- NR(Number of Record):行号,当前处理的文本行的行号。
-
FNR:各文件分别计数的行号\.注意:grep的--line-buffered选项和awk的fflush(stdout)命令可以使得grep和awk不缓存数据。不然文件不会有信息
#!/usr/bin/sh # ping -c -c: 执行ping操作的次数, 默认是一直执行, 除非被中断,86400次, 默认间隔1秒, 也就是24小时;-s 指定执行ping操作时发送的包的大小, 默认是56B ping -c 5 -s 20240 10.157.22.230 | gawk -F '[ ,=]' '$10>0.5''{print NR "\t" $5 "=" $6,$9"="$10,$11 "\t" strftime("%D_%H:%M:%S",systime())}' > logs/overReponseTime.txt
- sh -x pingOverTime.sh
-
# 输出包含 "re" 的行 $ awk '/re/ ' log.txt ls -l *.txt | awk '{sum+=$5} END {print sum}' awk 'BEGIN{FS=","} {print $1,$2}' log.txt awk 'BEGIN{FS=","} {print $1,$2}END {print sum}' log.txt
awk 'BEGIN {print "统计销售金额";total=0} # 输出提示语"统计销售金额",并设置total变量为0 {print $3;total=total+$3;} # 逐行扫描文件 END {print "销售金额总计",total}' file.txt # 在扫描文件之后执行,打印total变量
-
通过脚本记录时间戳
-
很多时候, 我们除了监控网络时延的大小, 还想知道网络发生抖动时的具体时间 —— 可以将 ping 的结果通过管道进行处理.为了方便后期查看, 也防止退出终端时命令被中断, 我们可以通过后台运行命令(脚本)的方式进行操作.
脚本内容如下
#!/usr/bin/sh # ping 86400次, 默认间隔1秒, 也就是24小时 ping -c 10 -s 10240 10.157.22.230 | awk '{ print $0"\t" strftime("%D_%H:%M:%S",systime()) }' > ping_result.log
-