工作中會遇到需要監控程式運行過程數據的情況,比如定時執行監控的cmd並記錄執行結果,本文提供一種實現方式,便於後續排查問題。 ...
操作系統 :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 獲取。
微信公眾號:![](https://files.cnblogs.com/files/MikeZhang/201804weixingongzhong1.gif)