Linux下監控某個進程
實驗環境: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"
步驟二:ps -aux | grep "rsync --daemon"
發現找到了需要的rsync進程,但是多個一個“grep”篩選進程,於是再次使用grep -v過濾
步驟三: ps -aux | grep "rsync --daemon" | grep -v "grep"
終於找到了需要的rsync進程,接下來就需要結合wc計數命令來做判斷條件,再與流程控制語句if來編寫腳本
步驟四:ps -aux | grep "rsync --daemon" | grep -v "grep" | wc -l
當rsync服務正在啟動時,得到的結果是1,當rsync服務停止時,得到的結果是0
Linux下監控某個進程