Curl 如何将jenkins构建持续时间从毫秒转换为hr:min:sec
我可以通过curl使用restapi获得jenkins构建持续时间,但是时间是以毫秒为单位的Curl 如何将jenkins构建持续时间从毫秒转换为hr:min:sec,curl,jenkins,awk,Curl,Jenkins,Awk,我可以通过curl使用restapi获得jenkins构建持续时间,但是时间是以毫秒为单位的 curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration 我正在寻找一种以标准格式获取时间的方法,即,hr:min:sec 我试过这个直到现在 curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%
curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration
我正在寻找一种以标准格式获取时间的方法,即,hr:min:sec
我试过这个直到现在
curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%i hr %i min %i sec", ($1 / 3600000), ($1 % 3600000)/60000 , ($1 % 100)}'
这肯定是不正确的,因为URL以毫秒为单位给出的时间是417597
,但它以hr:min:sec为单位给出的时间是0 hr 6 min 97 sec
curl -s $JOB_URL/3458/api/json?tree=duration
{"duration":417597}
curl -s $JOB_URL/3458/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%i hr %i min %i sec", ($1 / 3600000), ($1 % 3600000)/60000 , ($1 % 100)}'
0 hr 6 min 97 sec
分钟和小时的转换是正确的。
我被困在秒转换中
有人能告诉我这里出了什么问题吗。
提前谢谢
echo 417597 | awk '
{ t_sec = int($0/1000)
divmod(t_sec, 60); t_min = Q; sec = R
divmod(t_min, 60); hr = Q; min = R
printf "%s hr %s min %s sec\n", hr, min, sec
}
function divmod(a, b) { # quotient and remainder
Q = int(a / b)
R = a - Q * b
}'
返回
0 hr 6 min 57 sec
根据duration值,您可以简单地在groovy:D中计算该值 棒极了 执行
持续时间是构建时间10分钟35秒欢迎使用堆栈溢出,请在您的帖子中使用代码标签发布一次
curl
命令的输出,好吗?将有助于我们帮助您,干杯:)编辑问题:)
def duration = 635309
// Roud the hour
double hour = Double.valueOf((duration / 3600000)).round()
def hourStr = hour > 0 ? " ${hour}h" : ""
// Handle minute parts
double totalMin = Double.valueOf((duration % 3600000)/60000).round(2)
def realMin = "${totalMin}".split("\\.")
def min = Integer.valueOf(realMin[0])
def minStr = Integer.valueOf(min) > 0 ? "${min}min" : ""
// Handle the reminder of seconds
def realSec = realMin[1]
double secVal = Double.valueOf("0.${realSec}") * 60
def sec = "${secVal}".split("\\.")[0]
sec = Integer.valueOf(sec) > 0 ? "${sec}sec" : ""
println "Duration is Build time${hourStr} ${minStr} ${sec}"