使用python自動監控程式執行過程資料

2023-03-19 06:02:04

作業系統 :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 獲取。