
Linux 服務(wù)器我們天天打交道,特別是 Linux 工程師更是如此。為了保證服務(wù)器的安全與性能,我們經(jīng)常需要監(jiān)控服務(wù)器的一些狀態(tài),以保證工作能順利開展。
本文介紹的幾個(gè)命令,不僅僅適用于服務(wù)器監(jiān)控,也適用于我們?nèi)粘G闆r下的開發(fā)。
1. watchwatch 命令我們的使用頻率很高,它的基本作用是,按照指定頻率重復(fù)執(zhí)行某一條指令。使用這個(gè)命令,我們可以重復(fù)調(diào)用一些命令來達(dá)到監(jiān)控服務(wù)器的作用。
默認(rèn)情況下,watch 命令的執(zhí)行周期是 2 秒,但我們可以使用 -n 選項(xiàng)來指定運(yùn)行頻率,比如我們想要每隔 5 秒執(zhí)行 date 命令,可以這么執(zhí)行:
$ watch -n 5 date
一臺(tái)服務(wù)器肯定有多人在用,特別是本部門的小伙伴。對(duì)于這些小伙伴有沒渾水摸魚,我們可以使用一些命令來監(jiān)控他們。
我們可以每隔 10 秒執(zhí)行 who 命令,來看看都有誰在使用服務(wù)器。
$ watch -n 10 whoEvery 10.0s: who butterfly: Tue Jan 23 16:02:03 2019shs :0 2019-01-23 09:45 (:0)dory pts/0 2019-01-23 15:50 (192.168.0.5)alvin pts/1 2019-01-23 16:01 (192.168.0.15)shark pts/3 2019-01-23 11:11 (192.168.0.27)
如果發(fā)現(xiàn)系統(tǒng)運(yùn)行很慢,我們可以調(diào)用 uptime 命令來查看系統(tǒng)平均負(fù)載情況。
$ watch uptimeEvery 2.0s: uptime butterfly: Tue Jan 23 16:25:48 2019 16:25:48 up 22 days, 4:38, 3 users, load average: 1.15, 0.89, 1.02
一些關(guān)鍵的進(jìn)程肯定不能掛,否則可能會(huì)影響到業(yè)務(wù)開展,所以我們可以重復(fù)統(tǒng)計(jì)服務(wù)器中的所有進(jìn)程數(shù)量。
$ watch -n 5 'ps -ef | wc -l'Every 5.0s: ps -ef | wc -l butterfly: Tue Jan 23 16:11:54 2019245
想動(dòng)態(tài)知道服務(wù)器內(nèi)存使用情況,可以重復(fù)執(zhí)行 free 命令。
$ watch -n 5 free -mEvery 5.0s: free -m butterfly: Tue Jan 23 16:34:09 2019 total used free shared buff/cache availableMem: 5959 776 3276 12 1906 4878Swap: 2047 0 2047
當(dāng)然不僅僅是這些,我們還可以重復(fù)調(diào)用很多命令來對(duì)服務(wù)器一些關(guān)鍵參數(shù)進(jìn)行監(jiān)控,
2. top使用 top 命令我們可以知道系統(tǒng)的很多關(guān)鍵參數(shù),而且是動(dòng)態(tài)更新的。默認(rèn)情況下,top 監(jiān)控的是系統(tǒng)的整體狀態(tài),如果我們只想知道某個(gè)人的使用情況,可以使用 -u 選項(xiàng)來指定這個(gè)人。
$ top -u alvintop - 16:14:33 up 2 days, 4:27, 3 users, load average: 0.00, 0.01, 0.02Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stMiB Mem : 5959.4 total, 3277.3 free, 776.4 used, 1905.8 buff/cacheMiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4878.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND23026 alvin 20 0 46340 7820 6504 S 0.0 0.1 0:00.05 systemd23033 alvin 20 0 149660 3140 72 S 0.0 0.1 0:00.00 (sd-pam)23125 alvin 20 0 63396 5100 4092 S 0.0 0.1 0:00.00 sshd23128 alvin 20 0 16836 5636 4284 S 0.0 0.1 0:00.03 zsh
在這個(gè)結(jié)果里,你不僅僅可以看到 alvin 這個(gè)用戶運(yùn)行的所有的進(jìn)程數(shù),也可以看到每個(gè)進(jìn)程所消耗的系統(tǒng)資源(CPU,內(nèi)存),同時(shí)依然可以看到整個(gè)系統(tǒng)的關(guān)鍵參數(shù)。
3. ac如果你想知道每個(gè)用戶登錄服務(wù)器所使用的時(shí)間,你可以使用 ac 命令。這個(gè)命令需要你安裝acct 包(Debian)或 psacct 包(RHEL,Centos)。
如果我們想知道所有用戶登陸服務(wù)器所使用的時(shí)間之和,我們可以直接運(yùn)行 ac 命令,無需任何參數(shù)。
$ ac total 1261.72
如果我們想知道各個(gè)用戶所使用時(shí)間,可以加上 -p 選項(xiàng)。
$ ac -p shark 5.24 alvin 5.52 shs 1251.00 total 1261.76
我們還可以通過加上 -d 選項(xiàng)來查看具體每一天用戶使用服務(wù)器時(shí)間之和。
$ ac -d | tail -10Jan 11 total 0.05Jan 12 total 1.36Jan 13 total 16.39Jan 15 total 55.33Jan 16 total 38.02Jan 17 total 28.51Jan 19 total 48.66Jan 20 total 1.37Jan 22 total 23.48Today total 9.83小結(jié)
我們可以使用很多命令來監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),本文主要介紹了三個(gè):watch 命令可以讓你重復(fù)執(zhí)行某一條命令來監(jiān)控一些參數(shù)的變化,top 命令可以查看某個(gè)用戶運(yùn)行的進(jìn)程數(shù)以及消耗的資源,而 ac 命令則可以查看每個(gè)用戶使用服務(wù)器時(shí)間。你經(jīng)常使用哪個(gè)命令呢?歡迎留言討論!
更多Linux文章,請(qǐng)?jiān)L問Linux教程欄目進(jìn)行學(xué)習(xí)!
以上就是如何監(jiān)控 Linux 服務(wù)器狀態(tài)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選