import psutil 导入模块
1、系统管理
01、查看内存信息
total:内存总大小,used:已用,free:空闲,buffers:缓冲使用数,cache:缓存使用数,
mem = psutil.virtual_memory() virtual_memory:查看内存信息
print(mem)
print(mem.total/1000/1000/1000,mem.available,mem.percent,mem.used,mem.free)
mem.total:总大小,mem.used:已用,
print(psutil.swap_memory()) 获取交换内存信息
02、查看cpu信息
User time执行用户进程的时间百分比
System time 执行内核进程和中断的时间百分比
Wait IO IO等待的信息
Idle CPU : 处于idle状态的时间百分比
cpuinfo = psutil.cpu_times(percpu = True) psutil.cpu_times:获取cpu时间相关信息
cpuinfo = psutil.cpu_times()
print(cpuinfo)
print(psutil.cpu_count()) 获取cpu个数逻辑个数
print(psutil.cpu_count(logical=False)) 获取cpu物理个数
03、查看磁盘信息
read_count:读IO数
write_count :写IO数
read_bytes: IO读字节数
write_bytes :IO写字节数
read_time: 磁盘读时间
write_time: 磁盘写时间
print(psutil.disk_partitions()) #获取分区信息。
print(psutil.disk_usage('/') 获取指定分区的信息
print(psutil.disk_io_counters()) #获取磁盘总的IO详情
print(psutil.disk_io_counters(perdisk=True)) 获取单个分区IO的详情。
04、网络信息
bytes_sent:发送字节数
bytes_recv:接收字节数
packets_sent:发送包数
packets_recv:接收包数
print(psutil.net_io_counters())
05、获取系统其它信息
print(psutil.boot_time()) 获取系统开机时间
import datetime
print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")) 将获取到的时间转换成可视时间。
print(psutil.users()) :获取当前系统登录用户
2、系统进程管理
01、进程信息
print(psutil.pids()) 列出系统所有进程的ID
psutil.Process(1167) :获取某一进程的信息,参数为pid
psutil.Process(8158).name() 获取指定进程的名称
psutil.Process(8158).exe() 获取指定进程的执行命令的路径
psutil.Process(8158).cwd() 获取指定进程的工作路径的绝对路径。
psutil.Process(8158).status() 获取进程的状态
psutil.Process(8158).create_time() 进程创建时间
datetime.datetime.fromtimestamp(psutil.Process(8158).create_time()).strftime("%Y-%m-%d %H: %M: %S") 以可视的方式显示进程创建的时间。
psutil.Process(8158).uids() 获取指定进程的uid信息
psutil.Process(8158).gids() 获取指定进程的gid信息
psutil.Process(8158).cpu_times() 获取指定哪个进程的cup时间信息,包括user,system
psutil.Process(8158).cpu_affinity() 获取进程cPu的亲和度。
psutil.Process(8158).memory_percent() 进程内存利用率
psutil.Process(8158).memory_info 进程内存的rss和vms值。
psutil.Process(8158).io_counters() 指定进程的IO数,包括读写IO数及字节数
psutil.Process(8158).connections() 返回打开进程的soket的namedutples列表,包括(fs,family,laddr)等信息
psutil.Process(6353).num_threads() 指定进程开启的线程数。
02、popen类的使用:
from subprocess import PIPE 导入此模块
P = psutil.Popen(["/usr/bin/python","-c","print('hello')"],stdout=PIPE) 执行系统中的命令,非交互,并且输出。
>>> P.name()
'python'
>>> P.username()
'root'
>>> P.communicate()
('hello\n', None)
P.cpu_times()