shell監控進程腳本
⑴ linux shell腳本監控kafka,如果掛了自動重啟
實現Kafka服務監控與自動重啟的Linux shell腳本如下所示。此腳本適用於定時檢查Kafka服務狀態,並在服務未運行時自動啟動服務。
腳本主要分為以下部分:
1. **定義變數**:腳本中定義了Kafka服務的安裝路徑(KAFKA_HOME)、日誌文件路徑(KAFKA_LOG)以及進程ID文件路徑(KAFKA_PID_FILE)。
2. **檢查Kafka服務**:`check_kafka`函數用於驗證進程ID文件是否存在且進程是否仍在運行。如果服務未運行,則執行啟動操作。
3. **啟動Kafka服務**:`start_kafka`函數使用`nohup`命令在後台啟動Kafka,同時將輸出重定向至日誌文件。啟動成功後,腳本會記錄進程ID。
4. **循環檢查**:在主循環中,腳本每隔10秒執行一次`check_kafka`函數,確保Kafka服務始終運行。
注意:此腳本作為示例,根據具體環境可能需進行適當調整。確保在安全的環境下運行,避免執行可能造成數據丟失或其他不可逆操作的命令。
通過上述腳本,可實現Kafka服務的自動化監控與故障恢復,確保服務連續性,提升系統穩定性。
⑵ 如何編寫一個shell腳本查看某個進程是否在運行
1 、編寫一個shell腳本來查看某個進程是否在運行,用戶可以通過ps命令獲取所有的進程,然後通過awk命令提取進程名,再用grep提取相應的進程名即可。
2、參考代碼如下:
ps-aux|awk'{print$11}'|grep"^$1">/dev/null
case$?in
0)
echo"findprocess$1"
;;
1)
echo"$1isnotrunning"
;;
*)
echo"unknowerror"
esac
3、腳本運行結果如下
⑶ 關於linux伺服器進程監控及自動重啟的方法介紹
本周開始,新手游進行刪檔封測階段,前兩天表現還好,今天更新後出現幾次宕機行為,比較影響玩家的測試和體驗,我們的伺服器管理系統尚未完善,為了晚上能夠預防宕機造成損失,先用一種簡單的方案臨時頂替一下。
實現原理主要是使用linux提供的crontab機制,定時查詢伺服器進程是否存在,如果宕機則處理我們預設的腳本。
首先我們要向crontab加入一個新任務。
# crontab -e:進入編輯狀態,其實就是使用vi編輯。
*/1 * * * * sh /root/monitor.sh
我這里只是簡單的設置每分鍾調用一個shell腳本monitor.sh。這里可以配置的更強大,大家可以去搜索一下crontab的教程,網上有很多這類的教程。
這里需要注意的是,很多教程配置command的時候直接使用/root/monitor.sh,我設置的時候發現這樣配置不會執行shell腳本,前面加上sh後就能執行了。
然後我們開始寫monitor.sh這個shell腳本。
#! /bin/sh proc_name="WorldFrame_d"
#進程名 proc_num()
#查詢進程數
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num}proc_num number=$?
#獲取進程數量
if [ $number -eq 0 ]
#如果進程數量為0then
#重新啟動伺服器,或者擴展其它內容。
cd /longwen/server/sbin/linux; ./WorldFrame_d -c 1fi
我這個腳本,只是簡單的檢測了進程是否存在,不存在就自動重啟伺服器。
這里其實也可以擴展一下,比如對日誌文件的處理以及重啟時間等的記錄等等。
需要注意的是在windows編輯sh文件要注意格式問題(CR/LR),否則容易出現sh執行錯誤的BUG。
好了,進行測試吧,我這里測試OK,記錄一下,希望能幫到其它遇到類似問題的同學。謝謝閱讀,希望能幫到大家,請繼續關注腳本之家,我們會努力分享更多優秀的文章。
⑷ 求幫忙寫一個shell腳本,監控進程的。
#!/bin/sh
ps -ef | grep -v grep || grep -w 'java -jar /opt/mcb/scap/bin/ftp.jar monitor'
if [ $? -eq 0 ]; then
echo "start"
else
java start
fi
⑸ 求:linux 監控shell腳本運行時間
你的意思是某個進程不能不能超過5分鍾,否則觸發某個事件比如發送郵件或簡訊?
如果是這樣,腳本很好控制
直接在運行前記錄一個時間,然後創建一個lock文件
如果腳本完成,刪除pid
再sleep 300秒後判斷lock文件是否存在,如果不存在,退出,如果存在,報警,退出。