You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对showjobs输出的Linux格式CPUTime进行求和计算?

计算Linux格式CPU时间总和的方法

你可以用awk脚本直接处理命令输出,自动识别两种时间格式(HH:MM:SS和DD:HH:MM:SS),将所有时间转换成秒数累加后,再转回标准的天时分秒格式:

showjobs -u rsingh70 -n 365 | grep CPUTime | awk -F': ' '{
    # 分割时间字符串为数组
    split($2, time_parts, ":")
    # 处理HH:MM:SS格式
    if (length(time_parts) == 3) {
        total_secs += time_parts[1] * 3600 + time_parts[2] * 60 + time_parts[3]
    }
    # 处理DD:HH:MM:SS格式
    else if (length(time_parts) == 4) {
        total_secs += time_parts[1] * 86400 + time_parts[2] * 3600 + time_parts[3] * 60 + time_parts[4]
    }
}
END {
    # 将总秒数转换为天、时、分、秒
    days = int(total_secs / 86400)
    remaining = total_secs % 86400
    hours = int(remaining / 3600)
    remaining %= 3600
    mins = int(remaining / 60)
    secs = remaining % 60
    # 格式化输出,补全前导零
    printf "总CPU时长: %d:%02d:%02d:%02d\n", days, hours, mins, secs
}'

脚本说明:

  • -F': ':指定分隔符为:加空格,精准提取每行的时间部分
  • split():把时间字符串按:拆分成数组,通过数组长度判断时间格式
  • 时间转秒数:利用时间单位换算(1天=86400秒,1小时=3600秒,1分钟=60秒)累加总秒数
  • END块:将总秒数反向转换为天时分秒,用printf保证小时、分钟、秒数为两位数字(不足补零)

内容的提问来源于stack exchange,提问作者anikaM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:07:30