Shell 指令碼自動監控重啟 httpd 服務並記錄日誌
阿新 • • 發佈:2020-08-27
環境
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 等。然後是時間和記錄內容等。詳情可以自己上網檢視一下日誌規範。