Uptime
如何可靠地獲取系統啟動的時間戳?
我知道該
uptime
命令,但它會在啟動後返回秒數,因此如果我只是從目前時間戳中減去該數字,理論上如果在讀取正常執行時間和目前時間戳後秒數發生變化,我可以獲得不同的結果。uptime -s
是我想要的,但它在 centos 上不可用(順便說一句,它是如何計算的?)。我可以得到 /proc 目錄的 ctime 嗎?這似乎給了我正確的數字,但我想知道是否每個 linux 系統都在啟動時創建了 /proc。
首先,在 Linux 上
crtime
很棘手。也就是說,執行類似$ stat -c %z /proc/ 2014-10-30 14:00:03.012000000 +0100
或者
$ stat -c %Z /proc/ 1414674003
可能正是您需要的。文件系統由 LFS 標准定義,
/proc
應該適用於任何 Linux 系統以及大多數(所有?)UNIXen。或者,假設您真的不需要秒精度,而只需要正確的時間戳,您可以使用
who
:$ who -b system boot 2014-10-30 14:00
From
man who
: -b, –boot 上次系統啟動的時間您可以使用 GNU 將其轉換為自紀元以來的秒數
date
:$ date -d "$(who -b | awk '{print $4,$3}' | tr - / )" +%s 1414674000