1. 程式人生 > >python檢測系統基礎信息示例

python檢測系統基礎信息示例

python獲取系統信息示例 psutil

腳本示例

#!/usr/bin/env python  
# -*- coding:utf-8 -*-
import psutil  
import time
import datetime
import sys  
import os
import socket
import uuid
import platform 

def get_baseinfo():
        Nowtime=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        Macs = uuid.UUID(int = uuid.getnode()).hex[-12:]
        Mac = ":".join([Macs[e:e+2] for e in range(0,11,2)])
#       mac=os.popen("/usr/sbin/ip a|grep ether|awk -F ' ' '{print $2}'").read()
#       ipaddr=os.popen("/usr/sbin/ip a|grep eno|grep inet|awk -F ' ' '{print $2}'|awk -F '/' '{print $1}'").read()
        Hostname=socket.getfqdn(socket.gethostname())
        IPaddr=socket.gethostbyname(Hostname)
        Boot_Start = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(psutil.boot_time()))
        print('---------------基礎信息------------------')
        print('當前時間:%s' % Nowtime)
        print('主機域名:%s' % Hostname)
        print('IP地址:%s' % IPaddr)
        print('MAC地址:%s' % Mac)
        print('啟動時間:%s' % Boot_Start)
        print('-----------------------------------------')


def get_platinfo():
        print('---------------系統信息-------------------')
        print('計算類型 :%s ' % platform.machine())
        print('主機名稱 :%s ' % platform.node())
        print('操作系統類型 :%s ' % platform.system())
        print('操作系統名稱及版本號 :%s ' % platform.platform())
        print('------------------------------------------')

def get_cpuinfo():
        Cpu_count=psutil.cpu_count()
        Cpu_usage=psutil.cpu_percent()
        Cpu_type=os.popen("cat /proc/cpuinfo | grep name |uniq -c| cut -f2 -d:").read()
        print('-----------------CPU信息------------------')
        print('CPU核數:%s 核' % Cpu_count )
        print('當前CPU使用率: %s%s ' % (Cpu_usage,"%"))
        print('CPU型號: %s' % Cpu_type)
        print('------------------------------------------')

def get_meminfo():
        Mem_total=int(psutil.virtual_memory().total/(1024*1024))
        Mem_free=int(psutil.virtual_memory().free/(1024*1024))
        Mem_percent=psutil.virtual_memory().percent
        Swap_total=int(psutil.swap_memory().total/(1024*1024))
        Swap_percent=psutil.swap_memory().percent
        print('-----------------內存信息------------------')
        print('物理內存:%dM' % Mem_total)
        print('空閑內存:%dM' % Mem_free)
        print('內存使用率:%s%s' % (Mem_percent,"%"))
        print('Swap內存:%dM' % Swap_total)
        print('Swap使用率:%s%s' % (Swap_percent,"%"))
        print('-------------------------------------------')

def get_diskinfo():
#    for i in psutil.disk_partitions():
#        print "盤符: %s  掛載點: %s  總空間:%dM  剩余空間:%dM 使用率: %s%s" % (i[0],i[1],psutil.disk_usage(i[1])[0]/(1024*1024),psutil.disk_usage(i[1])[2]/(1024*1024),psutil.disk_usage(i[1])[3],"%")
    print('----------------磁盤信息-------------------')
    num=int(len(psutil.disk_partitions()))
    for j in range(0,num):
        device=psutil.disk_partitions()[j].device
        mountpoint=psutil.disk_partitions()[j].mountpoint
        total=psutil.disk_usage(mountpoint).total/(1024*1024)
        free=psutil.disk_usage(mountpoint).free/(1024*1024)
        percent=psutil.disk_usage(mountpoint).percent
        print "盤符: %s  掛載點: %s  總空間:%dM  剩余空間:%dM 使用率: %s%s" % (device,mountpoint,total,free,percent,"%")
    print('-------------------------------------------')


def get_netinfo():
        Net_sent = psutil.net_io_counters().bytes_sent  
        Net_recv = psutil.net_io_counters().bytes_recv  
        Net_spkg = psutil.net_io_counters().packets_sent  
        Net_rpkg = psutil.net_io_counters().packets_recv  
        print('----------------網絡信息-------------------')
        print('發送:%d Byte    發送包數:%d 個' % (Net_sent,Net_spkg))
        print('接收:%d Byte    接收包數:%d 個' % (Net_recv,Net_rpkg))
        print('-------------------------------------------')

if __name__ == "__main__":
                get_baseinfo()
                get_platinfo()
                get_cpuinfo()
                get_meminfo()
                get_diskinfo()
                get_netinfo()

python test.py

輸出結果:

---------------基礎信息------------------

當前時間:2018-05-09 18:23:58

主機域名:www.linuxtest01.com

IP地址:192.168.1.16

MAC地址:00:59:06:b0:55:62

啟動時間:2017-02-12 7:23:50

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

---------------系統信息-------------------

計算類型 :x86_64

主機名稱 :linuxtest01

操作系統類型 :Linux

操作系統名稱及版本號 :Linux-3.10.0-327.el7.x86_64-x86_64-with-redhat-7.2-Maipo

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

-----------------CPU信息------------------

CPU核數:4 核

當前CPU使用率: 27.8%

CPU型號: Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz


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

-----------------內存信息------------------

物理內存:7823M

空閑內存:1549M

內存使用率:49.4%

Swap內存:4095M

Swap使用率:17.6%

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

----------------磁盤信息-------------------

盤符: /dev/mapper/ 掛載點: / 總空間:97752M 剩余空間:47922M 使用率: 51.0%

盤符: /dev/sda1 掛載點: /boot 總空間:496M 剩余空間:340M 使用率: 31.5%

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

----------------網絡信息-------------------

發送:165857977619 Byte 發送包數:718789512 個

接收:688809440896 Byte 接收包數:784210872 個

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

腳本僅供參考



python檢測系統基礎信息示例