子產品:psutil
psutil是一個跨平台庫,可以很輕松的為我們實作擷取系統運作的程序和資源使用率等資訊。
功能:主要是為了系統監控
安裝:
1
2
3
4
<code>wget https:</code><code>//pypi</code><code>.python.org</code><code>/packages/source/p/psutil/psutil-2</code><code>.0.0.</code><code>tar</code><code>.gz --no-check-certificate</code>
<code>tar</code> <code>-zxvf psutil-2.0.0.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>psutil-2.0.0</code>
<code>python setup.py </code><code>install</code>
程序資訊:
進行資訊主要包括以下幾個部分:
程序名稱
路徑
狀态
系統資源使用率
Psutil.Process() 使用方法
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<code>import</code> <code>psutil,datetime</code>
<code>psutil.pids() </code><code># 列出所有程序PID</code>
<code>a </code><code>=</code> <code>psutil.Process(xxx) </code><code># 執行個體化Process對象,xxx為一個程序的PID</code>
<code>a.name() </code><code># 程序名</code>
<code>a.exe() </code><code># 程序bin路徑</code>
<code>a.cwd() </code><code># 程序工作目錄絕對路徑</code>
<code>a.status() </code><code># 程序狀态</code>
<code>a.create_time() </code><code># 程序建立時間,時間戳格式</code>
<code>datetime.datetime.formtimestamp(a.create_time()).strftime(</code><code>'%Y-%m-%d %H:%M:%S'</code><code>) </code><code># 自然時間格式</code>
<code>a.uids() </code><code># 程序UID資訊</code>
<code>a.gids() </code><code># 程序GID資訊</code>
<code>a.cpu_times() </code><code># 程序CPU時間資訊,包括user、system兩個CPU時間</code>
<code>a.cpu_affinity() </code><code># get程序CPU親和度,如果設定程序CPU親和度,将CPU号作為參數即可</code>
<code>a.memory_percent() </code><code># 程序記憶體使用率</code>
<code>a.memory_info() </code><code># 程序記憶體rss、vms資訊</code>
<code>a.io_counters() </code><code># 程序IO資訊,包括讀寫IO數及位元組數</code>
<code>a.connections() </code><code># 傳回打開程序的socket 的namedutples 清單,包括fd、family、laddr等資訊</code>
<code>a.num_threads() </code><code># 程序開啟的線程數</code>
作用:擷取使用者啟動的應用程式程序資訊,以便跟蹤程式程序的運作狀态popen類的使用:
使用方法:
<code>import</code> <code>psutil</code>
<code>from</code> <code>subprocess </code><code>import</code> <code>PIPE</code>
<code># 通過psutil的Popen方法啟動的應用程式,可以跟蹤被程式運作的所有相關資訊</code>
<code>a</code><code>=</code><code>psutil.Popen([</code><code>'/usr/bin/python'</code><code>,</code><code>'-c'</code><code>,</code><code>'print('</code><code>hello</code><code>')'</code><code>],stdout</code><code>=</code><code>PIPE)</code>
<code>a.name()</code>
<code>a.username()</code>
<code>a.communicate()</code>
<code>a.cpu_times()</code>
本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/2050034,如需轉載請自行聯系原作者