广州都市报

您现在的位置: AIX > AIX历史 > psutil获取服务器CPU内存磁盘

psutil获取服务器CPU内存磁盘

发布时间:2023-10-13 10:41:11   点击数:

psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等。此外,psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。而且psutil还提供了许多命令行工具提供的功能,包括:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。

python

一、安装

1、使用pip进行安装,命令如下:

pipinstallpsutil

2、如果安装了Anaconda,psutil就已经可用了,不需要进一步的安装了。

二、支持平台说明

官方平台给出数据,如下支持平台:Linux、Windows、OSX、FreeBSD、OpenBSD、NetBSD、SunSolaris、AIX

三、举例

1、获取当前登录用户信息

user=psutil.users()print(正在获取当前用户信息)print(当前用户:%s%user[0][0]+\n)

2、获取系统开机时间

sys_start_data=psutil.boot_time()sys_start_time=datetime.datetime.fromtimestamp(sys_start_data).strftime(%Y-%m-%d%H:%M:%S)print(正在获取系统开机时间)print(系统开机时间:%s%sys_start_time+\n)

这里引入了时间类库,便于时间展示效果

3、获取系统运行时间

running_time=time.time()-sys_start_dataprint(正在获取系统运行时间)print(已运行:%.1f小时%(running_time/)+\n)

4、获取当前CPU信息

count=psutil.cpu_count()print(正在获取系统内核信息)print(系统内核:%s核%count+\n)

5、获取硬盘使用情况和分区数

disk=psutil.disk_partitions()disk_num=0foriindisk:disk_num+=1print(磁盘:%s分区格式:%s%(i.device,i.fstype)+\n)disk_use=psutil.disk_usage(i.device)print(使用了:%.1fGB,空闲:%.1fGB,总共:%.1fGB,使用率%.1f%%,%(disk_use.used///,disk_use.free///,disk_use.total///,disk_use.percent)+\n)#分区数print(系统分区:%s%disk_num+\n)

6、获取内存使用情况

#内存情况memory=psutil.virtual_memory()#使用的memory_used=math.ceil(memory.used///)#总共memory_total=math.ceil(memory.total///)ab=float(memory.used)/float(memory.total)*print(总共%sG,使用%sG,内存使用率为:%.2f%%%(memory_total,memory_used,ab)+\n)

7、获取当前网络情况

#网络情况recv1=psutil.net_io_counters(pernic=True)[本地连接][1]#接收数据send1=psutil.net_io_counters(pernic=True)[本地连接][0]#上传数据time.sleep(1)#每隔1s监听端口接收数据recv2=psutil.net_io_counters(pernic=True)[本地连接][1]send2=psutil.net_io_counters(pernic=True)[本地连接][0]print(上传速度:%.1fkb/s.下载速度:%.1fkb/s.%(((send2-send1)/.0),((recv2-recv1)/.0))+\n)

这里需要注意,不同设备的网络情况是不同的。建议先使用psutil.net_io_counters查看设备的网络情况,再做进一步的处理。

8、获取磁盘IO数据

#IO信息io=psutil.disk_io_counters(perdisk=True)read_count=io[PhysicalDrive0][0]write_count=io[PhysicalDrive0][1]read_bytes=math.ceil(io[PhysicalDrive0][2]//)write_bytes=math.ceil(io[PhysicalDrive0][3]//)read_time=math.ceil(io[PhysicalDrive0][4]/60)write_time=math.ceil(io[PhysicalDrive0][5]/60)print(正在获取系统磁盘IO情况)fp.write(磁盘IO:读:%s,写:%s,上行数据:%sM,下行数据:%sM,读时间:%s分,写时间:%s分%(read_count,write_count,read_bytes,write_bytes,read_time,write_time)+\n

四、总结

1、积极阅读源码,

转载请注明:http://www.wangbaoying.com/jbbj/8594.html

网站简介 | 发布优势 | 服务条款 | 隐私保护 | 广告合作 | 合作伙伴 | 版权申明 | 网站地图

当前时间: