一,原理上说:运行时长 = 当前系统时间 - 开始时间
T2 = ¥(date --date=¥START+%s) //转换为纪元时间
T1 = ¥(date --date=¥STOP+%s) //转换为纪元时间
root ~]# echo ¥(¥T1-¥T2) seconds
root ~]# 9 seconds
root ~]#
二,实例如下:
当前问题时间格式的转换 docker是 UTC, centos是 CST
#docker inspect 实例名 //获取细节信息
1.获取docker实例 XXXX 开始运行的时间
[root@01000006 ~]# docker inspect --format='{{.State.StartedAt}}' XXXX
2020-04-02T08:26:00.005502399Z
[root@01000006 ~]#
2.换成UNIX纪元时间:
[root@01000006 ~]# echo $START_TIMESTAMP seconds
1585815960 seconds
[root@01000006 ~]#
3.如何把当前时间转换为unix的纪元时间?
[root@01000006 ~]# echo $(date +%s) seconds
1585824288 seconds
[root@01000006 ~]#
4.两者做差,就是运行的时间秒,再转换为时分秒
#START=$(docker inspect --format='{{.State.FinishedAt}}' XXXX)
#echo $ (date --date=$START +%s) //获得实例的开始运行时间
#echo $(date +%s) //获取当前时间
已运行时间=当前时间戳-开始运行时间戳 ?
//开始时间戳从docker里面获取,若暂停了容器,以再启动的时间为开始时间戳
三,时间逻辑:
12530 秒
12530/3600 = 时......余数(秒)
余数/60 = 分......余数(秒)
00:00:00 (时:分:秒)