一,原理上說:運行時長 = 當前系統時間 - 開始時間
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 (時:分:秒)