首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ping test -显示ping失败时所用的时间

Ping test -显示ping失败时所用的时间
EN

Stack Overflow用户
提问于 2019-01-21 16:57:09
回答 1查看 184关注 0票数 0

对于GitLab,通过使用bash脚本文件进行简单的ping测试,我尝试获取测试值、成功或失败以及ping的持续时间。

pingtest.sh文件

代码语言:javascript
复制
#!/bin/bash
count=$1
target=$2
testname=$3

ping -c $count $target >/dev/null 2>&1

if [ $? -eq 0 ]

then

echo $testname,Success,$(ping -c $count $target | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|')

else

echo $testname,Failure,$(ping -c $count $target | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|')

fi

.gitlab-ci.yml文件

代码语言:javascript
复制
image: centos

stages:
  - zero

job run_test_zero:
  stage: zero
  artifacts:
    when: always
    paths:
      - "report/*"
  script:
    - echo "TEST NAME|RESULT|DURATION" >> ./report/report.txt
    - chmod +x ./scripts/pingtest.sh
    - ./scripts/pingtest.sh 3 google.com pinggoolepass >> ./report/report.txt
    - ./scripts/pingtest.sh 3 google1.com pinggoolefail >> ./report/report.txt

report.txt文件

代码语言:javascript
复制
TEST NAME|RESULT|DURATION
pinggoolepass,Success,6.066
pinggoolefail,Failure,

我无法获取失败ping测试的持续时间。

请任何人给我建议和指导

EN

回答 1

Stack Overflow用户

发布于 2019-01-22 22:00:18

只使用ping一次

首先,您不必执行两次ping。有多种方法可以一次提取退出状态和最大rrt时间。以下是您的脚本的另一个版本:

代码语言:javascript
复制
#!/bin/bash
count="$1"
target="$2"
testname="$3"

if time=$(set -o pipefail;
          ping -c "$count" "$target" 2>&- | awk -F/ 'END {print $6}')
then
    result=Success
else
    result=Failure
fi
echo "$testname,$result,$time"

或者,您可以将if ... fi部件替换为

代码语言:javascript
复制
output="$(ping -c "$count" "$target" 2>&-)"
[ $? = 0 ] && result=Success || result=Failure
time="$(awk -F/ 'END {print $6}' <<< "$output")"

这两个脚本都等同于您的脚本,并且在ping失败的情况下不打印时间。

在故障情况下测量时间

为了»获取持续时间«,您首先必须指定»持续时间«是什么。

如果您想要ping退出所需的时间,请使用time命令,或者通过两次调用date或使用bash≥5.0中的$EPOCHESECONDS自行测量时间。但是,这个值没有任何意义,我不明白您为什么要打印它。

如果您谈论的是超时(而不是google1.com的情况),那么您最好自己指定一个超时并使用该值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54286337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档