分享實用監控指令碼:使用Shell檢查程式是否存在
在運維工作中,為保證業務的正常執行,我們需要定時檢視指定的程式是否還存在,一旦程式退出了,說明服務可能存在問題,運維工程師就可以在第一時間處理問題。 |
在運維工作中,為保證業務的正常執行,我們需要定時檢視指定的程式是否還存在,一旦程式退出了,說明服務可能存在問題,運維工程師就可以在第一時間處理問題。今天就跟大家分享一個實用的
——時刻檢查你的程式狀態。
在對程式進行監控時,我們一般需要得到該程式的 ID,程式 ID 是程式的唯一標識,但是有時可能在伺服器上不同使用者下執行著多個相同程式名的程式。
下面的函式 GetPID 給出了獲取指定使用者下指定程式名的程式 ID 功能(目前只考慮這個使用者下啟動一個此程式名的程式),它有兩個引數為使用者名稱和程式名,它首先使用 ps 查詢程式資訊,同時透過 grep 過濾出需要的程式,最後透過 sed 和 awk 查詢需要程式的 ID 值(此函式可根據實際情況修改,比如需要過濾其它資訊等)。
對程式進行監控
function GetPID #User #Name { PsUser=$1 PsName=$2 pid=`ps -u $PsUser|grep $PsName|grep -v grep|grep -v vi|grep -v dbx\n |grep -v tail|grep -v start|grep -v stop |sed -n 1p |awk '{print $1}'` echo $pid } <、pre>
PID=`GetPID root TestApp` echo $PID
11426 [dyu@xilinuxbldsrv shell]$
從上面的輸出可見:11426 為 root 使用者下的 TestApp 程式的程式 ID。
(1)ps: 檢視系統中瞬間程式資訊。 引數:
-u< 使用者識別碼 > 列出屬於該使用者的程式的狀況,也可使用使用者名稱稱來指定
-p< 程式識別碼 > 指定程式識別碼,並列出該程式的狀況
-o 指定輸出格式
(2)grep: 用於查詢檔案中符合字串的當前行。 引數:
-v 反向選擇,亦即顯示出沒有 ‘搜尋字串’ 內容的那一行
(3)sed: 一個非互動性文字編輯器,它編輯檔案或標準輸入匯出的檔案,一次只能處理一行內容。 引數:
-n 讀取下一個輸入行,用下一個
處理新的行而不是用第一個命令
p 標誌 列印匹配行
(4)awk:一種程式語言,用於在 linux/unix 下對文字和資料進行處理。除了在命令列中使用,它更多是作為
來使用。 引數:
-F fs or –field-separator fs :指定輸入檔案折分隔符,fs 是一個字串或者是一個正規表示式,如 -F:。
PS:有時有可能程式沒有啟動,下面的功能是檢查程式 ID 是否存在,如果此程式沒有執行輸出:
The process does not exist. # 檢查程式是否存在 if [ "-$PID" == "-" ] then { echo "The process does not exist." } fi
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2658441/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 監控程式是否存在的指令碼Linux指令碼
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- shell指令碼:監控MySQL服務是否正常薦指令碼MySql
- 使用CHECKSYNTAX命令檢查RMAN指令碼是否存在語法錯誤指令碼
- 【shell】磁碟監控指令碼指令碼
- 使用 Shell 指令碼監控 Linux 系統程式資源指令碼Linux
- 監控磁碟使用率的shell指令碼指令碼
- 監控系統使用情況shell指令碼指令碼
- SHELL指令碼檢查Oracle DG備庫是否已經應用歸檔指令碼Oracle
- 用於自動監控磁碟使用情況的 Shell 指令碼指令碼
- oracle會話監控shell指令碼Oracle會話指令碼
- Shell 系統資訊監控指令碼指令碼
- shell指令碼死迴圈檢查是否有特定的路由,若不存在進行增加操作指令碼路由
- shell監控服務程式是否啟動
- 分享兩個實用的shell指令碼指令碼
- python檢測圖片是否存在指令碼Python指令碼
- 透過shell指令碼監控oracle session指令碼OracleSession
- 常用的主機監控shell指令碼指令碼
- 通過shell指令碼監控oracle session指令碼OracleSession
- 檢查CPU是否支援MMX指令的程式碼 (轉)
- 檢查LOGO是否存在Go
- 監控某個目錄使用情況的shell指令碼指令碼
- centos 監控web站點是否500 指令碼CentOSWeb指令碼
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 利用shell指令碼監控網站狀態指令碼網站
- 我常用的主機監控Shell指令碼指令碼
- AIX系統資源監控SHELL指令碼AI指令碼
- 使用Shell指令碼對Linux系統和程式資源進行監控指令碼Linux
- 使用nrpe監控Goldengate程式指令碼Go指令碼
- 用zabbix監控oracle dg從庫是否應用日誌的指令碼Oracle應用日誌指令碼
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- memcached程式埠監控指令碼指令碼
- 使用Shell指令碼查詢程式對應的程式ID指令碼
- 每5秒監控5000埠的shell指令碼指令碼
- 監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- 實戰模擬監控MySQL服務shell指令碼小結薦MySql指令碼
- 監控指令碼指令碼