Linux上查看系統(tǒng)/服務(wù)器運(yùn)行時間的11種方法
你是否想知道自己的 Linux 系統(tǒng)正常運(yùn)行了多長時間而沒有宕機(jī)?系統(tǒng)是什么時候啟動的?
Linux 上有多個查看服務(wù)器/系統(tǒng)運(yùn)行時間的命令,大多數(shù)用戶喜歡使用標(biāo)準(zhǔn)并且很有名的 uptime
命令獲取這些具體的信息。
服務(wù)器的運(yùn)行時間對一些用戶來說不那么重要,但是當(dāng)服務(wù)器運(yùn)行諸如在線商城門戶、網(wǎng)上銀行門戶等關(guān)鍵任務(wù)應(yīng)用時,它對于服務(wù)器管理員來說就至關(guān)重要。
它必須做到零宕機(jī),因為一旦停機(jī)就會影響到數(shù)百萬用戶。
正如我所說,許多命令都可以讓用戶看到 Linux 服務(wù)器的運(yùn)行時間。在這篇教程里我會教你如何使用下面 11 種方式來查看。
正常運(yùn)行時間指的是服務(wù)器自從上次關(guān)閉或重啟以來經(jīng)過的時間。
uptime
命令獲取 /proc
文件中的詳細(xì)信息并輸出正常運(yùn)行時間,而 /proc
文件并不適合人直接看。
以下這些命令會輸出系統(tǒng)運(yùn)行和啟動的時間。也會顯示一些額外的信息。
方法 1:使用 uptime 命令
uptime
命令會告訴你系統(tǒng)運(yùn)行了多長時間。它會用一行顯示以下信息。
當(dāng)前時間、系統(tǒng)運(yùn)行時間、當(dāng)前登錄用戶的數(shù)量、過去 1 分鐘/5 分鐘/15 分鐘系統(tǒng)負(fù)載的均值。
# uptime
08:34:29 up 21 days, 5:46, 1 user, load average: 0.06, 0.04, 0.00
方法 2:使用 w 命令
w
命令為每個登錄進(jìn)系統(tǒng)的用戶,每個用戶當(dāng)前所做的事情,所有活動的負(fù)載對計算機(jī)的影響提供了一個快速的概要。這個單一命令結(jié)合了多個 Unix 程序:who
、uptime
,和 ps -a
的結(jié)果。
# w
08:35:14 up 21 days, 5:47, 1 user, load average: 0.26, 0.09, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 103.5.134.167 08:34 0.00s 0.01s 0.00s w
方法 3:使用 top 命令
top
命令是 Linux 上監(jiān)視實時系統(tǒng)進(jìn)程的基礎(chǔ)命令之一。它顯示系統(tǒng)信息和運(yùn)行進(jìn)程的信息,例如正常運(yùn)行時間、平均負(fù)載、運(yùn)行的任務(wù)、登錄用戶數(shù)量、CPU 數(shù)量 & CPU 利用率、內(nèi)存 & 交換空間信息。
推薦閱讀:TOP 命令監(jiān)視服務(wù)器性能的例子
# top -c
top - 08:36:01 up 21 days, 5:48, 1 user, load average: 0.12, 0.08, 0.02
Tasks: 98 total, 1 running, 97 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1872888k total, 1454644k used, 418244k free, 175804k buffers
Swap: 2097148k total, 0k used, 2097148k free, 1098140k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19340 1492 1172 S 0.0 0.1 0:01.04 /sbin/init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
4 root 20 0 0 0 0 S 0.0 0.0 0:34.32 [ksoftirqd/0]
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [stopper/0]
方法 4:使用 who 命令
who
命令列出當(dāng)前登錄進(jìn)計算機(jī)的用戶。who
命令與 w
命令類似,但后者還包含額外的數(shù)據(jù)和統(tǒng)計信息。
# who -b
system boot 2018-04-12 02:48
方法 5:使用 last 命令
last
命令列出最近登錄過的用戶。last
回溯 /var/log/wtmp
文件并顯示自從文件創(chuàng)建后登錄進(jìn)(出)的用戶。
# last reboot -F | head -1 | awk '{print $5,$6,$7,$8,$9}'
Thu Apr 12 02:48:04 2018
方法 6:使用 /proc/uptime 文件
這個文件中包含系統(tǒng)上次啟動后運(yùn)行時間的詳細(xì)信息。/proc/uptime
的輸出相當(dāng)精簡。
第一個數(shù)字是系統(tǒng)自從啟動的總秒數(shù)。第二個數(shù)字是總時間中系統(tǒng)空閑所花費(fèi)的時間,以秒為單位。
# cat /proc/uptime
1835457.68 1809207.16
方法 7:使用 tuptime 命令
tuptime
是一個匯報系統(tǒng)運(yùn)行時間的工具,輸出歷史信息并作以統(tǒng)計,保留重啟之間的數(shù)據(jù)。和 uptime
命令很像,但輸出更有意思一些。
$ tuptime
方法 8:使用 htop 命令
htop
是運(yùn)行在 Linux 上的一個交互式進(jìn)程查看器,是 Hisham 使用 ncurses 庫開發(fā)的。htop
比起 top
有很多的特性和選項。
推薦閱讀: 使用 Htop 命令監(jiān)控系統(tǒng)資源
# htop
CPU[| 0.5%] Tasks: 48, 5 thr; 1 running
Mem[||||||||||||||| 165/1828MB] Load average: 0.10 0.05 0.01
Swp[ 0/2047MB] Uptime: 21 days, 05:52:35
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
29166 root 20 0 110M 2484 1240 R 0.0 0.1 0:00.03 htop
29580 root 20 0 11464 3500 1032 S 0.0 0.2 55:15.97 /bin/sh ./OSWatcher.sh 10 1
1 root 20 0 19340 1492 1172 S 0.0 0.1 0:01.04 /sbin/init
486 root 16 -4 10780 900 348 S 0.0 0.0 0:00.07 /sbin/udevd -d
748 root 18 -2 10780 932 360 S 0.0 0.0 0:00.00 /sbin/udevd -d
方法 9:使用 glances 命令
glances
是一個跨平臺的基于 curses 庫的監(jiān)控工具,它是使用 python 編寫的。可以說它非常強(qiáng)大,僅用一點空間就能獲得很多信息。它使用 psutil 庫從系統(tǒng)中獲取信息。
glances
可以監(jiān)控 CPU、內(nèi)存、負(fù)載、進(jìn)程、網(wǎng)絡(luò)接口、磁盤 I/O、磁盤陣列、傳感器、文件系統(tǒng)(與文件夾)、容器、監(jiān)視器、Alert 日志、系統(tǒng)信息、運(yùn)行時間、快速查看(CPU,內(nèi)存、負(fù)載)等。
推薦閱讀: Glances (集大成)– Linux 上高級的實時系統(tǒng)運(yùn)行監(jiān)控工具
glances
ubuntu (Ubuntu 17.10 64bit / Linux 4.13.0-37-generic) - IP 192.168.1.6/24 Uptime: 21 days, 05:55:15
CPU [||||||||||||||||||||| 90.6%] CPU - 90.6% nice: 0.0% ctx_sw: 4K MEM \ 78.4% active: 942M SWAP - 5.9% LOAD 2-core
MEM [|||||||||||||||| 78.0%] user: 55.1% irq: 0.0% inter: 1797 total: 1.95G inactive: 562M total: 12.4G 1 min: 4.35
SWAP [| 5.9%] system: 32.4% iowait: 1.8% sw_int: 897 used: 1.53G buffers: 14.8M used: 749M 5 min: 4.38
idle: 7.6% steal: 0.0% free: 431M cached: 273M free: 11.7G 15 min: 3.38
NETWORK Rx/s Tx/s TASKS 211 (735 thr), 4 run, 207 slp, 0 oth sorted automatically by memory_percent, flat view
docker0 0b 232b
enp0s3 12Kb 4Kb Systemd 7 Services loaded: 197 active: 196 failed: 1
lo 616b 616b
_h478e48e 0b 232b CPU% MEM% VIRT RES PID USER NI S TIME+ R/s W/s Command
63.8 18.9 2.33G 377M 2536 daygeek 0 R 5:57.78 0 0 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
DefaultGateway 83ms 78.5 10.9 3.46G 217M 2039 daygeek 0 S 21:07.46 0 0 /usr/bin/gnome-shell
8.5 10.1 2.32G 201M 2464 daygeek 0 S 8:45.69 0 0 /usr/lib/firefox/firefox -new-window
DISK I/O R/s W/s 1.1 8.5 2.19G 170M 2653 daygeek 0 S 2:56.29 0 0 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
dm-0 0 0 1.7 7.2 2.15G 143M 2880 daygeek 0 S 7:10.46 0 0 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
sda1 9.46M 12K 0.0 4.9 1.78G 97.2M 6125 daygeek 0 S 1:36.57 0 0 /usr/lib/firefox/firefox -contentproc -childID 7 -isForBrowser -intPrefs 6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
方法 10:使用 stat 命令
stat
命令顯示指定文件或文件系統(tǒng)的詳細(xì)狀態(tài)。
# stat /var/log/dmesg | grep Modify
Modify: 2018-04-12 02:48:04.027999943 -0400
方法 11:使用 procinfo 命令
procinfo
從 /proc
文件夾下收集一些系統(tǒng)數(shù)據(jù)并將其很好的格式化輸出在標(biāo)準(zhǔn)輸出設(shè)備上。
# procinfo | grep Bootup
Bootup: Fri Apr 20 19:40:14 2018 Load average: 0.16 0.05 0.06 1/138 16615