標籤:python擷取系統資訊樣本 psutil
指令碼樣本
#!/usr/bin/env python # -*- coding:utf-8 -*-import psutil import timeimport datetimeimport sys import osimport socketimport uuidimport 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檢測系統基礎資訊樣本