linux centos7 定時執行服務監控腳本


2021-08-25

1. 需求

在服務掛掉之后我們要怎么做才能保證服務在短時間內開啟?可以編寫腳本監控服務的狀態,在服務掛掉后及時將其開啟,並定時執行該腳本。

 

2. 腳本編寫

思路:平常我們可以通過 ps ,netstat 命令查看服務是否已經開啟,所以可以通過這兩個命令去監控服務的狀態。每個服務的端口號是一一對應的,故我們選擇監控端口號來判斷服務的狀態。具體腳本如下:

# 編寫腳本 
vi tomcat_monitor_port.sh
# init,因為 crontab 用的系統變量
source ~/.bash_profile

# grep 服務的端口號,grep  LISTEN 表示服務正在正常運行
server=`netstat -nat | grep 8090 | grep  LISTEN`

# 如果服務沒有開啟,sever 會是空的
# 如果服務沒有開啟,開啟;若服務已經開啟,輸出提示
if [ ! "$server" ];
then
        cd /home/server/app/tomcat-7.0.109-1/bin
        ./startup.sh
else
        echo " tomcat is  running!! "
fi
# 先執行一下,確保腳本可以正常運行
sh tomcat_monitor_port.sh

如果執行腳本發現錯誤,可以使用 sh -x tomcat_monitor_port.sh 進行錯誤排查

 

3. 設置定時任務

# 添加定時任務
crontab -e

# 每分鍾檢查一次 tomcat 進程是否運行,若沒運行啟動它
* * * * * sh /home/server/scripts/tomcat_monitor_port.sh

 

4. 測試

先關掉 tomcat 服務  ./shutdown.sh 

 

查看端口 netstat -nat | grep 8090 ,服務正在關閉,現在的狀態是 TIME_WAIT

等一分鍾后再看,服務開啟,現在端口狀態變成 LISTEN

 

查看定時任務執行日志 cat /var/spool/mail/server 

 

 OK,到這里,一個簡單的定時執行的服務監控腳本就完成啦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM