一,原理上说:运行时长 = 当前系统时间 - 开始时间

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     (时:分:秒)
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐