我有一支程式是用來作特定連線用,但是因為某些網路問題,可能會造成該程式中斷網路連線而停止,因此我需要寫一支script來幫助我定時監控該連線還存不存在,如果不存在則要幫我重新連線,下面是Script範例(connection_check.sh):
#!/bin/sh
if /usr/bin/netstat | grep 10.1.1.1.8080 | grep -v grep > /dev/null
then
date >> /var/log/monitor/log
echo "connection alived" >> /var/log/monitor/log
else
date >> /var/log/monitor/log
echo "connection dead" >> /var/log/monitor/log
/bin/sh /etc/connect.sh
fi
首先,/usr/bin/netstat | grep 10.1.1.1.8080 | grep -v grep > /dev/null這個指令是用來確認我的機器對10.1.1.1的8080 port連線是否存在,把訊息導給/dev/null是因為我不想看到grep出來的結果,如果連線還在,則把日期跟connnection alived的訊息寫到/var/log/monitor/log,如果連線不存在則執行連線script當然log還是要紀錄。
接著只要在crontab裡面加上一行描述讓crontab每五分鐘去check連線是否存在即可。
*/5 * * * * root /root/myscript/connection_check.sh
假如你有一個重要Process需要確保它隨時隨地都是活著的,需要將if /usr/bin/netstat | grep 10.1.1.1.8080 | grep -v grep > /dev/null改為/bin/ps auxw |grep [這裡放Process名稱] |grep -v grep > /dev/null(注意:Process活著不代表正常Work),要注意的是一定要加w這個參數,如果不加的話ps輸出結果有可能被截斷,造成誤判。
- Jul 21 Mon 2008 13:19
用grep來監控程式是否正常運作
全站熱搜
留言列表
發表留言