標籤:python import python擷取系統狀態 psutil
python關於擷取當前系統的狀態
系統效能資訊模組 psutil #可跨平台
psutil是一個跨平台庫,輕鬆擷取系統啟動並執行進程和系統利用率
能實現ps、top、lso、nice、netstat、ifconfig、who、df、kill、free
ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap 這些命令的功能
首先確定下當前系統有沒有psutil模組
import psutil
如果有的話,就直接匯入模組成功,如果沒有,就會提示錯誤
然後到官網上下載psutil-2.0.0.tar.gz源碼包
tar -zxf psutil-2.0.0.tar.gz & cd psutil-2.0.0
python setup.py install
讀取cpu的整個資訊
import psutil
psutil.cpu_times() #顯示cpu的整個資訊
擷取單項值
psutil.cpu_times() .user #如果要只但看那個的話就在後邊加上.xxx就行了
擷取cpu的邏輯個數
psutil.cpu_count()
擷取cpu的物理個數
psutil.cpu_count( logical=False )
讀取記憶體資訊
linux系統記憶體利用率資訊涉及to-tal(記憶體總數),used(以使用記憶體),free(空閑記憶體),buffers(緩衝使用數)
cache(緩衝使用數),swap(交換分區使用數),分別使用psutil.virtual_memory()與psuti.swap_memory()方法擷取
import psuti
mem = psuti.virtual_memory() #擷取記憶體的完整資訊
mem.total #擷取記憶體總數
mem.free #擷取閒置記憶體資訊
擷取swap分區資訊
psutil.swap_memory()
讀取磁碟參數
磁碟利用率使用psutil.disk_usage方法擷取,磁碟IO資訊包括read_count(讀IO數),write_count(寫IO數)
read_bytes(IO寫位元組數),read_time(磁碟讀時間),write_time(磁碟寫時間),這些IO資訊用psutil.disk_io_counters()
擷取磁碟的完整資訊
psutil.disk_partitions()
擷取分區表的參數
psutil.disk_usage(‘/‘) #擷取/分區的狀態
擷取硬碟IO總個數
psutil.disk_io_counters()
擷取單個分區IO個數
psutil.disk_io_counters(perdisk=True) #perdisk=True參數擷取單個分區IO個數
讀取網路資訊
網路資訊與磁碟IO資訊類似,涉及到幾個關鍵點,包括byes_sent(發送位元組數),byte_recv=xxx(接受位元組數),
pack-ets_sent=xxx(發送位元組數),pack-ets_recv=xxx(接收資料包數),這些網路資訊用psutil.net_io_counters()
psutil.net_io_counters() #擷取網路總IO資訊
psutil.net_io_counters(pernic=True) #pernic=True輸出網路每個介面資訊
擷取當前系統使用者登入資訊
psutil.users()
擷取開機時間
import psutil, datetime
psutil.boot_time() #以linux時間格式返回
datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S") #轉換成自然時間格式
系統進程管理
擷取當前系統的進程資訊,擷取當前英語程式的運行狀態,包括進程的啟動時間,查看設定CPU親和度,記憶體使用量率,IO資訊
socket串連,線程數等
擷取進程資訊
psutil模組在擷取進程方面有很好的支援,使用psutil.pids()方法擷取所有進程的PID,
使用psutil.Process()方法擷取單個進程的名稱,路徑狀態等
查看系統全部進程
psutil.pids()
查看單個進程
p = psutil.Process(2423)
p.name() #進程名
p.exe() #進程的bin路徑
p.cwd() #進程的工作目錄絕對路徑
p.status() #進程狀態
p.create_time() #進程建立時間
p.uids() #進程uid資訊
p.gids() #進程的gid資訊
p.cpu_times() #進程的cpu時間資訊,包括user,system兩個cpu資訊
p.cpu_affinity() #get進程cpu親和度,如果要設定cpu親和度,將cpu號作為參考就好
p.memory_percent() #進程記憶體利用率
p.memory_info() #進程記憶體rss,vms資訊
p.io_counters() #進程的IO資訊,包括讀寫IO數字及參數
p.connectios() #返回進程列表
p.num_threads() #進程開啟的線程數
聽過psutil的Popen方法啟動應用程式,可以跟蹤程式的相關資訊
from subprocess import PIPE
p = psutil.Popen(["/usr/bin/python", "-c", "print(‘hello‘)"],stdout=PIPE)
p.name()
p.username()
本文出自 “鬥月” 部落格,請務必保留此出處http://douyue.blog.51cto.com/10174393/1654865
python擷取系統狀態psutil模組