【问题标题】:jenkins rest get duration in human format詹金斯休息以人类格式获得持续时间
【发布时间】:2014-06-16 06:13:35
【问题描述】:

我需要通过 curl 命令获取工作持续时间。

我可以访问它

curl -s $JENKINS_JOB_URL/146/api/json?tree=duration

{“持续时间”:14182142}

如何将 14182142 转换为 "3 hr 56 min" ? (通过 ksh,或在 curl 命令中)

谢谢

【问题讨论】:

    标签: rest jenkins


    【解决方案1】:

    awk 可以接受吗?

    curl -s $JENKINS_JOB_URL/146/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%i hr %i min", ($1 / 3600000), ($1 % 3600000)/60000 }'
    

    如果有人知道将数字从字符串中取出并放入 awk 的好方法,我可以删除讨厌的 awk 双重调用。

    【讨论】:

    • 如何以小时分秒为单位获取时间
    • 将“%i seconds”添加到格式字符串中,然后使用余数和div函数提取秒数:remainder from 60000, div by 1000。
    • duration=$(curl -g -u youssefboudaya:1159d3bdda500d6cc78bede1100245362a --silent "$BUILD_URL/api/json?pretty=true&tree=duration" | jq -r '.duration') 给我“0 “作为持续时间。我在后期构建任务中做到了
    • 您查看过生成的 JSON 吗?返回的值实际上是0吗?也许 0 是正确的?
    【解决方案2】:

    你总是可以使用一些python:

    python -c"import datetime;print datetime.timedelta(milliseconds=14182142);"
    

    3:56:22.142000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2022-07-25
      • 2021-01-22
      相关资源
      最近更新 更多