Python psutil模块能,实现查看cpu的信息、查看内存信息、查看系统启动时间、查看网卡信息等。其能够跨平台,可以用来做系统监控,性能分析,进程管理。
下面是一个简单的示例,在python3下面测试过:
<code> #!/usr/bin/python #coding:utf-8 import datetime import psutil ''' 查看系统基本信息 www.tianfeiyu.com ''' def get_cpu_info(): #获取cpu状态 print('\033[1;31;40m-------------------------cpu状态信息-----------------------------------\033[0m') print('cpu 物理逻辑为 :%s' % psutil.cpu_count()) print('cpu 物理个数为 :%s' % psutil.cpu_count(logical=False)) print('cpu 执行用户进程时间百分比 :%% %s' % (psutil.cpu_times_percent().user) ) print('cpu 处于空闲时间状态百分比 :%% %s' % (psutil.cpu_times_percent().idle) ) print('cpu 执行内核进程和中断时间百分比 :%%%s' % psutil.cpu_times_percent().system) print('cpu 处于io等待状态百分比 :%%%s' % psutil.cpu_times_percent().iowait) def get_mem_info(): #获取内存状态信息 print('\033[1;31;40m-------------------------内存状态信息-----------------------------------\033[0m') mem = psutil.virtual_memory() print('内存总大小:%.1fG' % (mem.total/1024/1024/1024)) print('空闲内存大小:%.2fG' % (mem.free/1024/1024/1024)) swap = psutil.swap_memory() print('swap分区总大小:%.1fG' % (swap.total/1024/1024/1024)) print('swap空闲分区大小:%.1fG' % (swap.free/1024/1024/1024)) def get_disk_info(): #获取磁盘信息 print('\033[1;31;40m-------------------------磁盘信息-----------------------------------\033[0m') for i in psutil.disk_partitions(): print(i) disk_usage = psutil.disk_usage(i[1]) print('%s 使用情况如下:' % i[1]) print('----------分区总大小:%.1fG' % (disk_usage[0]/1024/1024/1024)) print('----------已使用空间:%.1fG' % (disk_usage[1]/1024/1024/1024)) print('----------剩余空间: %.1fG' % (disk_usage[2]/1024/1024/1024)) def get_network_info(): #获取网络信息 print('\033[1;31;40m-------------------------网络信息-----------------------------------\033[0m') network = psutil.net_io_counters() print('已发送字节数:%.1fM' % (network[0]/1024/1024/1024)) print('已接收字节数:%.1fM' % (network[1]/1024/1024/1024)) print('已发送数据包个数:%.1f' % network[2]) print('已接收数据包个数:%.1f' % network[3]) def get_user_info(): #获取用户信息 print('\033[1;31;40m-------------------------用户信息-----------------------------------\033[0m') print('系统开机时间为:%s' % datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S')) user = psutil.users() for i in range(0,len(user)): print('用户名 :%s,终端 :%s,主机 :%s,登录时间 %s' %(user[i][0],user[i][1],user[i][2],datetime.datetime.fromtimestamp(user[i][3]).strftime('%Y-%m-%d %H:%M:%S'))) if __name__ == '__main__' : get_cpu_info() get_mem_info() get_disk_info() get_network_info() get_user_info() </code>
运行结果:
<code> [root@sta psutil-py]# python test.py -------------------------cpu状态信息----------------------------------- cpu 物理逻辑为 :4 cpu 物理个数为 :4 cpu 执行用户进程时间百分比 :% 10.0 cpu 处于空闲时间状态百分比 :% 88.0 cpu 执行内核进程和中断时间百分比 :%1.0 cpu 处于io等待状态百分比 :%1.0 -------------------------内存状态信息----------------------------------- 内存总大小:3.7G 空闲内存大小:0.10G swap分区总大小:3.9G swap空闲分区大小:2.4G -------------------------磁盘信息----------------------------------- sdiskpart(device='/dev/mapper/vg_xiyousta-lv_root', mountpoint='/', fstype='ext4', opts='rw') / 使用情况如下: ----------分区总大小:393.6G ----------已使用空间:46.3G ----------剩余空间: 327.3G sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext4', opts='rw') /boot 使用情况如下: ----------分区总大小:0.5G ----------已使用空间:0.1G ----------剩余空间: 0.4G sdiskpart(device='/dev/mapper/vg_xiyousta-lv_home', mountpoint='/home', fstype='ext4', opts='rw') /home 使用情况如下: ----------分区总大小:9.7G ----------已使用空间:0.0G ----------剩余空间: 9.2G -------------------------网络信息----------------------------------- 已发送字节数:778.4M 已接收字节数:1700.0M 已发送数据包个数:2225061642.0 已接收数据包个数:1953071471.0 -------------------------用户信息----------------------------------- 系统开机时间为:2015-11-04 20:46:00 用户名 :root,终端 :pts/3,主机 :192.168.1.84,登录时间 2015-11-25 16:06:24 用户名 :root,终端 :pts/4,主机 :192.168.1.84,登录时间 2015-11-25 16:10:40 用户名 :root,终端 :pts/5,主机 :192.168.1.84,登录时间 2015-11-25 16:32:00 [root@sta psutil-py]# </code>