使用 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)日志。
想知道系統(tǒng)已經(jīng)運(yùn)行了多久,其實(shí)不需要復(fù)雜操作。linux 下查看系統(tǒng)運(yùn)行時(shí)長(zhǎng)非常簡(jiǎn)單,幾種常用命令就能搞定。
使用 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í)間。
比如輸出可能是這樣的:
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í)。
- 如果你只想知道運(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)景差異。