1. 程式人生 > 實用技巧 >Shell 指令碼自動監控重啟 httpd 服務並記錄日誌

Shell 指令碼自動監控重啟 httpd 服務並記錄日誌

環境

CentOS7

思路

設定一個死迴圈,執行指令碼時開始啟動 httpd 服務,同時開始記錄當前時間,然後輸出到日誌中,再 sleep 14 秒,之後馬上開始停止 httpd 服務,同時開始記錄當前時間,然後輸出到日誌中。重複這個死迴圈。

程式碼

vi test.sh 開啟檔案,按 i 進行編輯,輸入下面程式碼:

#!/bin/sh
while :
do
    systemctl start httpd
    curdate=`date +"%Y-%m-%d %H:%M:%S"`
    echo [INFO] ${curdate} >> /home/opp/test.log "httpd is starting"
    sleep 14
    systemctl stop httpd
    curdate=`date +"%Y-%m-%d %H:%M:%S"`
    echo [INFO] ${curdate} >> /home/opp/test.log "httpd is stopping"
done

然後需要建立 test.log 這個檔案:

mkdir /home/opp
vi /home/opp/test.log

然後按 Esc,再按 :wq 退出。

輸入下面命令開始執行指令碼:

./test.sh

等待一段時間,然後按 Ctrl+Z 停止指令碼,輸入下面命令檢視日誌

vi /home/opp/test.log

可以看到以下內容:

可以看到基本做到了讓 httpd 服務每 15s 停止,使用指令碼監控並且啟動,並計入日誌。但是由於程式執行需要花費時間,因此有些時間會超過 15s,但大體思路是這樣。

日誌規範

工作中要注意日誌規範,一般最前面是日誌級別:INFO、WARN、ERROR 等。然後是時間和記錄內容等。詳情可以自己上網檢視一下日誌規範。

參考

shell指令碼每隔幾秒執行一次

shell 獲取當前日期,當前時間

Linux(centos)新建,刪除,移動資料夾和檔案的命令

Shell 輸入/輸出重定向

自動監控apache服務狀態並重啟的shell指令碼

日誌規範總結篇

LOG使用規範(整理)