使用uptimed命令監(jiān)視Linux系統(tǒng)正常運(yùn)行時(shí)間
大家好,我是良許。
作為一名合格的 Linux 運(yùn)維人員,監(jiān)視系統(tǒng)的正常運(yùn)行時(shí)間可以說(shuō)是一門基本功了。今天這篇文章就為大家分享一個(gè)用于記錄和跟蹤系統(tǒng)的運(yùn)行時(shí)間的實(shí)用命令行工具,它的名字叫做 uptimed。
之所以推薦 uptimed,主要是因?yàn)樗茉谟涗浐透櫹到y(tǒng)的運(yùn)行時(shí)間之余,還能將這些歷史記錄以摘要的形式直截了當(dāng)?shù)卣故窘o用戶,比如你的系統(tǒng)已經(jīng)運(yùn)行多長(zhǎng)時(shí)間了?最長(zhǎng)的運(yùn)行時(shí)間記錄是多少?系統(tǒng)又是何時(shí)重啟的?等等,而且它也比較容易上手。下面就簡(jiǎn)單來(lái)了解一下 uptimed 的安裝和使用吧。
安裝uptimed工具
目前主流的 Linux 發(fā)行版的官方存軟件庫(kù)中已經(jīng)提供了 uptimed 。
在 Arch Linux 上安裝:
- $ sudo pacman -S uptimed
在 Debian,Ubuntu,Linux Mint 上安裝:
- $ sudo apt-get install uptimed
在 Ubuntu 及其衍生版本上安裝前請(qǐng)確保添加了 universe 存儲(chǔ)庫(kù),沒(méi)有的話請(qǐng)運(yùn)行以下命令添加:
- $ sudo add-apt-repository universe
在 Fedora 上安裝:
- $ sudo dnf install uptimed
在 CentOS 7 上安裝:
因?yàn)?CentOS 7 的默認(rèn)存儲(chǔ)庫(kù)中沒(méi)有 uptimed,所以要先添加 EPEL 存儲(chǔ)庫(kù):
- $ sudo yum install epel-release
然后運(yùn)行以下命令安裝:
- $ sudo yum install uptimed
手動(dòng)安裝:
對(duì)于其他 Linux 系統(tǒng),或者上述方法安裝失敗的,可以從發(fā)行版頁(yè)面下載源碼,然后手動(dòng)編譯安裝:
- # wget https://github.com/rpodgorny/uptimed/archive/v0.4.2.zip -O uptimed.zip
- # unzip uptimed.zip
- # cd uptimed-0.4.2/
- # ./configure
- # make
- # make install
安裝完成后,啟用并啟動(dòng)服務(wù):
- # systemctl enable uptimed
- # systemctl start uptimed
檢查服務(wù)的啟動(dòng)狀態(tài):
- # systemctl status uptimed
- ● uptimed.service - Uptime record tracking daemon
- Loaded: loaded (/usr/lib/systemd/system/uptimed.service; disabled; vendor preset: disabled)
- Active: active (running) since Tue 2020-02-11 14:21:12 IST; 1s ago
- Docs: man:uptimed(8)
- man:uprecords(1)
- Main PID: 1435 (uptimed)
- Status: "Next milestone (five days) at Sun Feb 16 14:13:59 2020"
- CGroup: /system.slice/uptimed.service
- └─1435 /usr/sbin/uptimed -f
- Feb 11 14:21:12 server.ostechnix.local systemd[1]: Starting Uptime record tracking daemon...
- Feb 11 14:21:12 server.ostechnix.local systemd[1]: Started Uptime record tracking daemon.
這樣,前期的安裝工作就算完成了。
使用uptimed工具
安裝完成 uptimed 工具之后,運(yùn)行 uprecords 命令就能顯示系統(tǒng)運(yùn)行時(shí)間的歷史摘要了:
- # uprecords
輸出的摘要結(jié)果:
- # Uptime | System Boot up
- ----------------------------+---------------------------------------------------
- 1 0 days, 02:35:51 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:22:33 2020
- 2 0 days, 00:07:27 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:13:59 2020
- -> 3 0 days, 00:02:11 | Linux 3.10.0-1062.1.1.el Tue Feb 11 17:02:29 2020
- ----------------------------+---------------------------------------------------
- 1up in 0 days, 00:05:17 | at Tue Feb 11 17:09:56 2020
- no1 in 0 days, 02:33:41 | at Tue Feb 11 19:38:20 2020
- up 0 days, 02:45:29 | since Tue Feb 11 14:13:59 2020
- down 0 days, 00:05:12 | since Tue Feb 11 14:13:59 2020
- %up 96.953 | since Tue Feb 11 14:13:59 2020
這里的 -> 符號(hào)表示定位到了系統(tǒng)最近的一次啟動(dòng)時(shí)間。
使用 -b 按啟動(dòng)時(shí)間正序輸出:
- # uprecords -b
- # Uptime | System Boot up
- ----------------------------+---------------------------------------------------
- 1 0 days, 00:07:27 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:13:59 2020
- 2 0 days, 02:35:51 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:22:33 2020
- -> 3 0 days, 00:30:14 | Linux 3.10.0-1062.1.1.el Tue Feb 11 17:02:29 2020
使用 -B 按啟動(dòng)時(shí)間倒序輸出:
- # uprecords -B
- # Uptime | System Boot up
- ----------------------------+---------------------------------------------------
- -> 1 0 days, 00:14:51 | Linux 3.10.0-1062.1.1.el Tue Feb 11 17:02:29 2020
- 2 0 days, 02:35:51 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:22:33 2020
- 3 0 days, 00:07:27 | Linux 3.10.0-1062.1.1.el Tue Feb 11 14:13:59 2020
使用 -m 自定義輸出記錄數(shù):
不加參數(shù)的話結(jié)果默認(rèn)輸出前 10 條記錄,想要輸出前 20 條記錄,請(qǐng)運(yùn)行:
- # uprecords -m 20
使用 -w 輸出完整信息:
上面的結(jié)果中關(guān)于 Linux 的內(nèi)核信息是被省略了部分內(nèi)容的,想要輸出完整的內(nèi)核信息請(qǐng)用 -w 進(jìn)行寬輸出:
- # uprecords -w
- # Uptime | System Boot up
- ----------------------------+---------------------------------------------------
- 1 0 days, 02:35:51 | Linux 3.10.0-1062.1.1.el7.x86_64 Tue Feb 11 14:22:33 2020
- -> 2 0 days, 00:16:35 | Linux 3.10.0-1062.1.1.el7.x86_64 Tue Feb 11 17:02:29 2020
- 3 0 days, 00:07:27 | Linux 3.10.0-1062.1.1.el7.x86_64 Tue Feb 11 14:13:59 2020
- ----------------------------+---------------------------------------------------
- no1 in 0 days, 02:19:17 | at Tue Feb 11 19:38:21 2020
- up 0 days, 02:59:53 | since Tue Feb 11 14:13:59 2020
- down 0 days, 00:05:12 | since Tue Feb 11 14:13:59 2020
- %up 97.190 | since Tue Feb 11 14:13:59 2020
使用 -d 顯示關(guān)機(jī)時(shí)間:
-d 可以將上面的內(nèi)核信息替換為關(guān)機(jī)時(shí)間信息:
- # uprecords -d
- # Uptime | Last downtime Boot up
- ----------------------------+---------------------------------------------------
- 1 0 days, 02:35:51 | 0 days, 00:01:07 Tue Feb 11 14:22:33 2020
- -> 2 0 days, 00:13:02 | 0 days, 00:04:05 Tue Feb 11 17:02:29 2020
- 3 0 days, 00:07:27 | 0 days, 00:00:00 Tue Feb 11 14:13:59 2020
- ----------------------------+---------------------------------------------------
- no1 in 0 days, 02:22:50 | at Tue Feb 11 19:38:21 2020
- up 0 days, 02:56:20 | since Tue Feb 11 14:13:59 2020
- down 0 days, 00:05:12 | since Tue Feb 11 14:13:59 2020
- %up 97.136 | since Tue Feb 11 14:13:59 2020
查看更多的命令選項(xiàng):
- # uprecords -?
- usage: uprecords [OPTION]...
- -? this help
- -a do not print ansi codes
- -b sort by boottime
- -B reverse sort by boottime
- -k sort by sysinfo
- -K reverse sort by sysinfo
- -d print downtime seen before every uptimes instead of system
- -c do not show current entry if not in top entries
- -f run continously in a loop
- -s do not print extra statistics
- -w wide output (more than 80 cols per line)
- -i INTERVAL use INTERVAL seconds for loop instead of 5, implies -f
- -m COUNT show a maximum of top COUNT entries instead of 10
- -M show next milestone
- -v version information
好了,這次的分享就到這里了,上面所舉的例子都是日常使用中十分常見(jiàn)的,如果你想要了解更多關(guān)于 uptimed 的用法,可以參考它的幫助手冊(cè)。
- $ man uprecords
希望本文對(duì)你有所幫助!


























