在服務(wù)器運(yùn)維過程中,經(jīng)常需要對(duì)服務(wù)器的各種資源進(jìn)行監(jiān)控,例如:CPU的負(fù)載監(jiān)控,磁盤的使用率監(jiān)控,進(jìn)程數(shù)目監(jiān)控等等,以在系統(tǒng)出現(xiàn)異常時(shí)及時(shí)報(bào)警,通知系統(tǒng)管理員。本文介紹在Linux系統(tǒng)下幾種常見的監(jiān)控需求及其shell腳本的編寫。
文章目錄:
1.Linux使用 Shell 檢查進(jìn)程是否存在
2.Linux使用 Shell檢測(cè)進(jìn)程 CPU 利用率
3.Linux使用 Shell檢測(cè)進(jìn)程內(nèi)存使用量
4.Linux使用 Shell檢測(cè)進(jìn)程句柄使用量
5.Linux使用 Shell查看某個(gè) TCP 或 UDP 端口是否在監(jiān)聽
6.Linux使用 Shell查看某個(gè)進(jìn)程名正在運(yùn)行的個(gè)數(shù)
7.Linux使用 Shell檢測(cè)系統(tǒng) CPU 負(fù)載
8.Linux使用 Shell檢測(cè)系統(tǒng)磁盤空間
9.總結(jié)
檢查進(jìn)程是否存在
在對(duì)進(jìn)程進(jìn)行監(jiān)控時(shí),我們一般需要得到該進(jìn)程的 ID,進(jìn)程 ID 是進(jìn)程的唯一標(biāo)識(shí),但是有時(shí)可能在服務(wù)器上不同用戶下運(yùn)行著多個(gè)相同進(jìn)程名的進(jìn)程,下面的函數(shù) GetPID 給出了獲取指定用戶下指定進(jìn)程名的進(jìn)程 ID 功能(目前只考慮這個(gè)用戶下啟動(dòng)一個(gè)此進(jìn)程名的進(jìn)程),它有兩個(gè)參數(shù)為用戶名和進(jìn)程名,它首先使用 ps 查找進(jìn)程信息,同時(shí)通過 grep 過濾出需要的進(jìn)程,最后通過 sed 和 awk 查找需要進(jìn)程的 ID 值(此函數(shù)可根據(jù)實(shí)際情況修改,比如需要過濾其它信息等)。
清單 1. 對(duì)進(jìn)程進(jìn)行監(jiān)控
示例演示:
1)源程序(例如查找用戶為 root,進(jìn)程名為 CFTestApp 的進(jìn)程 ID)
3)結(jié)果分析
從上面的輸出可見:11426 為 root 用戶下的 CFTestApp 程序的進(jìn)程 ID。
4)命令介紹
1. ps: 查看系統(tǒng)中瞬間進(jìn)程信息。 參數(shù):-u< 用戶識(shí)別碼 > 列出屬于該用戶的程序的狀況,也可使用用戶名稱來指定。 -p< 進(jìn)程識(shí)別碼 > 指定進(jìn)程識(shí)別碼,并列出該進(jìn)程的狀況。 -o 指定輸出格式 2. grep: 用于查找文件中符合字符串的當(dāng)前行。 參數(shù):-v 反向選擇,亦即顯示出沒有 ‘搜尋字符串' 內(nèi)容的那一行。 3. sed: 一個(gè)非交互性文本編輯器,它編輯文件或標(biāo)準(zhǔn)輸入導(dǎo)出的文件,一次只能處理一行內(nèi)容。 參數(shù):-n 讀取下一個(gè)輸入行,用下一個(gè)命令處理新的行而不是用第一個(gè)命令。 p 標(biāo)志 打印匹配行 4. awk:一種編程語言,用于在 linux/unix 下對(duì)文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動(dòng)態(tài)正則表達(dá)式等先進(jìn)功能,是 linux/unix 下的一個(gè)強(qiáng)大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk 的處理文本和數(shù)據(jù)的方式:它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒有指定處理動(dòng)作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出 ( 屏幕 ),如果沒有指定模式,則所有被操作所指定的行都被處理。 參數(shù):-F fs or 主站蜘蛛池模板: 河南省| 霍山县| 桂平市| 会宁县| 镇宁| 化隆| 菏泽市| 平南县| 简阳市| 东丽区| 云阳县| 兴和县| 金华市| 五河县| 神池县| 金平| 巴东县| 措美县| 招远市| 班玛县| 兴安县| 南宫市| 盐津县| 岢岚县| 建昌县| 兴安县| 崇阳县| 丹凤县| 灵川县| 连平县| 邢台市| 通化市| 鄂州市| 和平县| 闸北区| 库车县| 康平县| 胶州市| 沽源县| 巴东县| 泗洪县|