分享實用監控指令碼:使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- 【shell】磁碟監控指令碼指令碼
- Linux中檢視指令碼程式是否存在的命令!Linux指令碼
- 監控磁碟使用率的shell指令碼指令碼
- 用於自動監控磁碟使用情況的 Shell 指令碼指令碼
- shell指令碼死迴圈檢查是否有特定的路由,若不存在進行增加操作指令碼路由
- shell監控服務程式是否啟動
- 分享兩個實用的shell指令碼指令碼
- Shell 系統資訊監控指令碼指令碼
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- Shell指令碼監控MySQL主從狀態指令碼MySql
- centos 監控web站點是否500 指令碼CentOSWeb指令碼
- 使用Shell指令碼查詢程式對應的程式ID指令碼
- shell指令碼監控啟動停止weblogic服務指令碼Web
- 9個實用shell指令碼指令碼
- 例項程式碼分享Python實現Linux監控PythonLinux
- 透過shell指令碼監控日誌切換頻率指令碼
- 如何使用 Shell 指令碼來檢視多個伺服器的埠是否開啟?指令碼伺服器
- 使用shell指令碼在Linux中管理Java應用程式指令碼LinuxJava
- MySQL的一些功能實用的Linux shell指令碼分享MySqlLinux指令碼
- 【MySQL】MHA原始碼之監控檢查(一)MySql原始碼
- 幾例實用的Shell指令碼指令碼
- 用於管理應用程式得shell指令碼指令碼
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- sh指令碼判斷路徑是否存在指令碼
- shell指令碼企業巡檢指令碼
- 網路卡流量監控指令碼,python實現指令碼Python
- 如何用bash shell 指令碼監控 Linux記憶體、磁碟和 CPU?指令碼Linux記憶體
- python——指令碼實現檢測目標ip是否存在ftp笑臉漏洞(ftp後門漏洞)Python指令碼FTP
- 案例五:shell指令碼實現定時監控http服務的執行狀態指令碼HTTP
- 技術分享| 如何使用Prometheus實現系統程式監控Prometheus
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- 使用者領域 API 監控和程式碼注入檢測API
- PostgreSQL之鎖監控指令碼SQL指令碼
- Shell指令碼應用(三)指令碼
- 通用程式部署shell指令碼指令碼
- MySQL 5.6大查詢和大事務監控指令碼(Python 2)MySql指令碼Python