【shell腳本】監控服務進程狀態

今天公司LD讓寫個小腳本,監控一個進程是否存在,存在怎退出腳本,若是不存在就發一封郵件給指定郵箱,我是經過守護進程的運行狀態來判斷該服務的鏈接狀況,並將測試結果顯示到標準輸出上。
shell

爲了方便監控,使用crontab使其每兩小時執行一次。bash

代碼:
ide

#!/bin/bash
#
#提示用戶輸入一個指定守護進程名稱,並將其賦予變量n_proc
#echo "Please input a name of process
#read n_proc
#
#搜索變量n_proc中指定的守護進程的進程號,並賦值給變量pidnu
pidnu=$( ps ax |grep -v "ps ax"|grep -v grep |grep $n_proc|awk '{print $1}')
#
echo "checking for \"$n_proc\",please wait..."
#
#判斷變量pidnu是否爲空,空則證實此進程不存在。
if [ -z "$pidnu" ]
    then
        echo "The status be stopped..."
        mail -s "title" *********@163.com < /root/shell/mail.txt
        exit
       else
           echo "The status be running..."
fi


設置定時任務測試

[root@localhost ~]# crontab -e
2 * * * * sh ~/shell/status.sh
(若是使用定時任務的話,就應該把上面的$n_proc換成指定的某個進程)

wKioL1PrMeHhELbyAAEWJr_yLCw575.jpg


郵件已成功發送3d

wKiom1PrMMmiHeJoAAGy0MBfPhI906.jpg

相關文章
相關標籤/搜索