程式實時監控

therorawt發表於2007-10-14

雲南聯通linux下幾個應用程式需要做個實時監控,以便程式掉線時能自動重起。方法是用(定時任務)crontab來實現。關於crontab的用法在上上一篇部落格裡有較為詳細的說明,當然那篇是我轉載七月小豬的blog,在這裡感謝一下^_^。crontab呼叫shell指令碼是用的公司以前同事寫的,拿過來作了些修改。條件都具備了,按理說完成這個工作任務應該是水到渠成的事了,但在做的過程還是遇到一些麻煩,耽誤了不少時間。

現把一些要點總結如下:

[@more@]

1. 兩個指令碼MonitorProc.sh, ProcList.sh
其中ProcList.sh是程式目錄以及對應的程式名;
MonitorProc.sh是檢查該程式是否離線,如果該程式的pid為空,則把程式目錄裡的指定的可執行檔案重新啟動。

2. 如果在windows下用UE編輯這兩個檔案,不要把它們轉化為DOS格式,否則拿到linux下認不到。我當時做的時候就犯了這個錯誤,結果費了不少時間。

3. ftp到linux下後,檔案需要有執行的許可權。用下面這條命令可以使檔案讓所屬的使用者有執行的許可權。
chmod +x *.sh

4. 對於ProcList.sh檔案,在最後一行結束的時候儲存退出,不需要再留一個空行。比如這個檔案只有一行:
ZHYZ_GW1 YZ_GateWay
那麼游標在y處儲存退出即可,不需要再敲回車。這個檔案最好直接在linux中用vi編輯出來。

5. 在用crontab呼叫指令碼的時候,先單獨執行下shell指令碼,測試下指令碼,順便檢查下是否有語法錯誤。診斷的過程中,可以在指令碼中設一些字元,或把一些變數列印出來,直到指令碼透過測試。這個過程最好在測試機上做,對測試機的要求:和生產機的機型、OS、版本相同。

6. 對於指令碼中需要建立日誌檔案的,需要檢查執行crontab的使用者在當前目錄是否具有建立檔案的許可權。

7. 檢查crond服務是否啟動
方法:/etc/init.d/crond status 或者
ps -ef | grep cron

8. 編輯crontab檔案,如下:
$crontab -e
* * * * * /home/ynjfk/command/MonitorProc.sh >>/home/ynjfk/command/monitor_crontab.log

9. 觀察/home/ynjfk/command下是否有日誌產生,如果有,檢視日誌檔案

另外要特別注意的是,在生產機上使用rm命令要特別小心,特別是加了-rf引數

--全文完

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9896745/viewspace-976507/,如需轉載,請註明出處,否則將追究法律責任。

相關文章