Linux下監控某個進程

應用場景:經常發生某個進程宕機,例如Rsync服務

                圖片.png

實驗環境:CentOS7

實驗腳本:

                

#!/bin/bash
status=$(ps -aux | grep "rsync --daemon" | grep -v "grep" | wc -l)
if [ $status -eq 0 ];
then
systemctl restart rsyncd.service
else
exit 0;
fi

        腳本分析:

                        步驟一: ps -aux | grep "rsync"

                                      發現有多個rsync進程,於是再次刪選過濾,找出需要的進程"/usr/bin/rsync --daemon --no-detach"

                        圖片.png

                        步驟二:ps -aux | grep "rsync --daemon"

                                     發現找到了需要的rsync進程,但是多了一個“grep”篩選進程,於是再次使用grep -v過濾

                                    圖片.png

                        步驟三: ps -aux | grep "rsync --daemon" | grep -v "grep"

                                        終於找到了需要的rsync進程,接下來就需要結合wc計數命令來做判斷條件,再與流程控制語句if來編寫腳本

                                    圖片.png

                        步驟四:ps -aux | grep "rsync --daemon" | grep -v "grep" | wc -l

                                         當rsync服務正在啓動時,得到的結果是1,當rsync服務停止時,得到的結果是0

                                    圖片.png

                                     圖片.png




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章