作業系統 :CentOS 7.6.1810_x64
Python 版本 : 2.7.5
工作中會遇到需要監控程式執行過程資料的情況,比如定時執行監控的cmd並記錄執行結果,本文提供一種實現方式,便於後續排查問題。
使用python實現該功能很簡單,大致分為以下幾個步驟:
1、編寫cmd命令,確保執行後有控制檯輸出且退出命令;
2、使用 popen 執行cmd命令,並獲取cmd的執行結果;
3、將執行結果以紀錄檔形式寫入檔案,並設定紀錄檔檔案總大小,避免佔用過多磁碟;
自動監控指令碼範例程式碼如下:
完整程式碼可從該地址獲取:聊聊博文-使用python自動監控程式執行過程資料
或關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023031801 獲取。
其中,cmd 可以根據實際情況進行調整,這裡列舉下我常用的幾個場景。
監控某程序cpu、記憶體使用情況
先使用ps獲取程式pid,再使用top命令監控進行執行資料:
top -b -n 1 -p 15653
可使用iostat命令獲取指定裝置的使用資料:
iostat -d sda
監控某應用程式執行資料
比如監控freeswitch的呼叫資料,可以使用如下命令:
/usr/local/freeswitch/bin/fs_cli -x "show calls count"
如果是在docker容器中,可使用如下命令:
docker exec -t fs /usr/local/freeswitch/bin/fs_cli -x "show calls count"
這裡以監控程序為例演示下使用效果,命令如下:
top -b -n 1 -p 15653
效果如下:
本文涉範例程式碼,可從如下途徑獲取:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023031801 獲取。