Linux下如何查看系統(tǒng)運(yùn)行時(shí)間 3種方法查看系統(tǒng)持續(xù)運(yùn)行時(shí)長(zhǎng)

使用 uptime 命令可直接查看系統(tǒng)運(yùn)行時(shí)長(zhǎng),例如輸入 uptime 顯示“up 2 days 5 hours”表示已運(yùn)行兩天五小時(shí);2. 查看 /proc/uptime 文件獲取系統(tǒng)啟動(dòng)以來的總秒數(shù),第一個(gè)數(shù)字為總運(yùn)行時(shí)間,適合腳本處理;3. 使用 who -b 命令查看系統(tǒng)啟動(dòng)時(shí)間,結(jié)合 date 可計(jì)算精確運(yùn)行時(shí)長(zhǎng),但依賴系統(tǒng)日志。

Linux下如何查看系統(tǒng)運(yùn)行時(shí)間 3種方法查看系統(tǒng)持續(xù)運(yùn)行時(shí)長(zhǎng)

想知道系統(tǒng)已經(jīng)運(yùn)行了多久,其實(shí)不需要復(fù)雜操作。linux 下查看系統(tǒng)運(yùn)行時(shí)長(zhǎng)非常簡(jiǎn)單,幾種常用命令就能搞定。

Linux下如何查看系統(tǒng)運(yùn)行時(shí)間 3種方法查看系統(tǒng)持續(xù)運(yùn)行時(shí)長(zhǎng)

使用 uptime 命令查看

這是最直接的方式。在終端輸入 uptime,它會(huì)顯示系統(tǒng)當(dāng)前時(shí)間、用戶登錄數(shù)量以及過去 1、5、15 分鐘的平均負(fù)載,同時(shí)還會(huì)告訴你系統(tǒng)已經(jīng)連續(xù)運(yùn)行了多長(zhǎng)時(shí)間。

Linux下如何查看系統(tǒng)運(yùn)行時(shí)間 3種方法查看系統(tǒng)持續(xù)運(yùn)行時(shí)長(zhǎng)

比如輸出可能是這樣的:

 14:30:00 up 2 days 5 hours, 3 users, load average: 0.15, 0.10, 0.05

其中 up 2 days 5 hours 就表示系統(tǒng)運(yùn)行了兩天又五個(gè)小時(shí)。

Linux下如何查看系統(tǒng)運(yùn)行時(shí)間 3種方法查看系統(tǒng)持續(xù)運(yùn)行時(shí)長(zhǎng)

  • 如果你只想知道運(yùn)行時(shí)間部分,可以結(jié)合 awk 提取:
    uptime | awk '{print $3,$4}'

這個(gè)方法適合快速查看,而且大多數(shù) Linux 發(fā)行版都自帶這個(gè)命令。

查看 /proc/uptime 文件

Linux 的 /proc 是一個(gè)虛擬文件系統(tǒng),里面包含了大量系統(tǒng)運(yùn)行時(shí)的信息。/proc/uptime 文件中記錄了系統(tǒng)啟動(dòng)以來的總秒數(shù)。

執(zhí)行以下命令可以看到兩個(gè)數(shù)字:

cat /proc/uptime

輸出類似這樣:

123456.78 987654.32

第一個(gè)數(shù)字是系統(tǒng)總共運(yùn)行的秒數(shù)(包括睡眠時(shí)間),第二個(gè)是所有 CPU 核心空閑的時(shí)間總和。

  • 如果你想把秒數(shù)轉(zhuǎn)成更直觀的天數(shù)小時(shí)分鐘格式,可以用腳本處理,或者手動(dòng)計(jì)算:
    • 比如:123456 秒 ≈ 1 天 10 小時(shí) 17 分鐘

這種方式適合寫腳本或做監(jiān)控用,實(shí)時(shí)性強(qiáng),數(shù)據(jù)準(zhǔn)確。

使用 who -b 命令查看系統(tǒng)啟動(dòng)時(shí)間

如果你想知道系統(tǒng)是從什么時(shí)候開始運(yùn)行的,而不是運(yùn)行了多久,可以用 who -b 命令。

運(yùn)行結(jié)果可能像這樣:

system boot 2024-03-10 08:30:00

這表示系統(tǒng)是在 2024 年 3 月 10 日早上八點(diǎn)半啟動(dòng)的。你可以根據(jù)當(dāng)前時(shí)間和這個(gè)時(shí)間點(diǎn)來估算運(yùn)行時(shí)長(zhǎng)。

  • 這個(gè)方法依賴于系統(tǒng)日志,如果日志被清理過,可能查不到。
  • 配合 date 命令還能算出精確運(yùn)行時(shí)間:
    echo $(($(date +%s) - $(who -b | awk '{print $3, $4}' | date +%s)))

基本上就這些方法了,不復(fù)雜但容易忽略的是 /proc/uptime 和 who -b 的應(yīng)用場(chǎng)景差異。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享