1. 程式人生 > >python 獲取系統資訊—psutil安裝及使用

python 獲取系統資訊—psutil安裝及使用

簡介

工具可以獲得到CPU, memory, disks, network這些資訊

psutil可以用來做系統監控,效能分析,程序管理。 支援的系統有Linux, Windows, OSX, FreeBSD and Sun Solaris,32和64位系統都支援,同時支援pyhton2.4到3.4。

liunx安裝

tar -zxvf psutil-2.1.3.tar.gz

cd psutil-2.1.3

python setup.py install

若提示:error: command 'gcc' failed with exit status 1

執行下面的命令:

yum install gcc python-devel

python setup.py install

windows 安裝

 pip install psutil 

--------------------------------------------------------------------------

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import psutil
import datetime
import time

# 當前時間
now_time = time.strftime('%Y-%m-%d-%H:%M:%S', time.localtime(time.time()))
print now_time
# 檢視cpu的資訊
print u"物理CPU個數: %s" % psutil.cpu_count(logical=False)
cpu = (str)(psutil.cpu_percent(1)) + '%'
print u"cup使用率: %s" % cpu
# 檢視記憶體資訊,剩餘記憶體.free  總共.total
free = str(round(psutil.virtual_memory().free/(1024.0*1024.0*1024.0), 2))
total = str(round(psutil.virtual_memory().total/(1024.0*1024.0*1024.0), 2))
memory = int(psutil.virtual_memory().total-psutil.virtual_memory().free)/float(psutil.virtual_memory().total)
print u"實體記憶體: %s G" % total
print u"剩餘實體記憶體: %s G" % free
print u"實體記憶體使用率: %s %%" % int(memory*100)
# 系統啟動時間
print u"系統啟動時間: %s" % datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
# 系統使用者
users_count = len(psutil.users())
users_list = ",".join([u.name for u in psutil.users()])
print u"當前有%s個使用者,分別是 %s" % (users_count, users_list)
# 網絡卡,可以得到網絡卡屬性,連線數,當前流量等資訊
net = psutil.net_io_counters()
bytes_sent = '{0:.2f} Mb'.format(net.bytes_recv / 1024/1024)
bytes_rcvd = '{0:.2f} Mb'.format(net.bytes_sent / 1024/1024)
print u"網絡卡接收流量 %s 網絡卡傳送流量 %s" % (bytes_rcvd, bytes_sent)
io = psutil.disk_partitions()
del io[-1]
print '-----------------------------磁碟資訊---------------------------------------'
print "系統磁碟資訊:"+str(io)
for i in io:
    o = psutil.disk_usage(i.device)
    print "總容量:"+str(int(o.total/(1024.0*1024.0*1024.0)))+"G"
    print "已用容量:"+str(int(o.used/(1024.0*1024.0*1024.0)))+"G"
    print "可用容量:"+str(int(o.free/(1024.0*1024.0*1024.0)))+"G"
print '-----------------------------程序資訊-------------------------------------'
# 檢視系統全部程序
for pnum in psutil.pids():
    p = psutil.Process(pnum)
    print u"程序名 %-20s  記憶體利用率 %-18s 程序狀態 %-10s 建立時間 %-10s "\
          % (p.name(), p.memory_percent(), p.status(),  p.create_time())