暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

通过psutil模块获取系统信息和进程信息

IT那活儿 2023-06-21
1094

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




psutil简介



通过psutil模块可以获取系统进程信息和系统资源的信息,主要应用于系统监控,性能分析和进程管理。



psutil安装



1. Linux安装

tar zxvf psutil-5.9.5.tar.gz
cd psutil-5.9.5
python setup.py install

1)若出现以下报错,按提示安装python3-devel,如下
2)python3-devel安装成功后,继续安装psutil
2. Windows安装
pip3.exe install psutil
注:
  • psutil载地址:
    https://pypi.org/project/psutil/#files
  • 版本:5.9.5



信息获取



通过psutil获取系统信息和进程信息:

1. 获取cpu信息
1)获取cpu总体信息
import psutil
cpu_info = psutil.cpu_times()
print("cpu基本信息:{}".format(cpu_info))

2)获取cpu占比信息
import psutil
cpu_info= psutil.cpu_times()
cpu_user = cpu_info.user
print("cpu的用户进程占比:{}".format(cpu_user))
cpu_system=cpu_info.system
print("cpu的系统进程占比:{}".format(cpu_system))
cpu_iowait=cpu_info.iowait
print("cpu的io等待占比:{}".format(cpu_iowait))

3)获取CPU核信息
import psutil
cpu_count = psutil.cpu_count()
print("cpu的核信息:{}".format(cpu_count))
cpu_count = psutil.cpu_count(logical=True)
print("cpu的核信息(包含逻辑):{}".format(cpu_count))

2. 获取内存信息
1)获取全部内存信息(包括交换内存分区)
import psutil
mem_info = psutil.virtual_memory()
print("内存的基本信息:{}".format(mem_info))
mem_swap = psutil.swap_memory()
print("内存的交换信息:{}".format(mem_swap))

2)获取部分内存信息
import psutil
mem_info = psutil.virtual_memory()
mem_swap = psutil.swap_memory()
mem_total = mem_info.total
print("mem_total:{}".format(mem_total))
mem_percent = mem_info.used
print("mem_percent:{}".format(mem_percent))
mem_free = mem_info.free
print("mem_buffers:{}".format(mem_buffers))
swap_total = mem_swap.total
print("swap_total:{}".format(swap_total))
swap_percent = mem_swap.percent
print("swap_percent:{}".format(swap_percent))

3. 获取磁盘信息
1)获取磁盘分区详细信息
import psutil
disk_info = psutil.disk_partitions()
print("所有的分区详情:{}".format(disk_info))

2)获取磁盘分区挂载点基本信息
import psutil
disk_partition = psutil.disk_usage('/')
print("根分区详情:{}".format(disk_partition))

3)获取磁盘IO信息
import psutil
disk_io_count = psutil.disk_io_counters()
print("分区io信息:{}".format(disk_io_count))

4. 获取网络信息
1)获取网络的详情信息
import psutil
network_info = psutil.net_io_counters()
print("网卡的数据传输信息:{}".format(network_info))

2)获取网络地址、状态、连接等信息
import psutil
network_addrs = psutil.net_if_addrs()
print("网卡的地址信息:{}".format(network_addrs))
network_stats = psutil.net_if_stats()
print("网卡的状态信息:{}".format(network_stats))
network_conn = psutil.net_connections()
print("网卡的连接信息:{}".format(network_conn))

5. 获取系统信息
1)获取系统启动时间
import datetime,psutil
date_time = psutil.boot_time()
print("系统启动的时间戳:{}".format(date_time))
#将时间戳转换为日期时间
date_time_format = datetime.datetime.fromtimestamp(date_time).strftime("%Y-%m-%d %H:%M:%S")
print("系统启动的时间:{}".format(date_time_format))

2)获取所有连接的用户信息
import psutil
user_info = psutil.users()
print("连接的用户信息:{}".format(user_info))

6. 获取进程信息
1)获取所有进程的ID
import psutil
process_id = psutil.pids()
print("当前系统运行的进程ID:{}".format(process_id))

2)判断进程ID是否存在并输出进程信息
import psutil
pid_num = int(input('please input process id:'))
pid_info = psutil.Process(pid_num)
if psutil.pid_exists(pid_num):
print("{}进程是运行状态,进程信息是:{}.".format(pid_num,pid_info))
else:
print("{} 进程不是运行状态.".format(pid_num))


END


本文作者:方 威(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论