Python自动化运维学习笔记

2019-09-18 11:12:02 浏览数 (2)

psutil  跨平台的PS查看工具

执行pip install psutil 即可,或者编译安装都行。

# 输出内存使用情况(以字节为单位)

代码语言:javascript复制
import psutil
mem = psutil.virtual_memory()
print mem.total,mem.used,mem
print psutil.swap_memory()  # 输出获取SWAP分区信息

# 输出CPU使用情况

代码语言:javascript复制
cpu = psutil.cpu_stats()
printcpu.interrupts,cpu.ctx_switches
 
psutil.cpu_times(percpu=True)      # 输出每个核心的详细CPU信息
psutil.cpu_times().user              # 获取CPU的单项数据 [用户态CPU的数据]
psutil.cpu_count()                   # 获取CPU逻辑核心数,默认logical=True
psutil.cpu_count(logical=False) # 获取CPU物理核心数

# 输出磁盘信息

代码语言:javascript复制
psutil.disk_partitions()         # 列出全部的分区信息
psutil.disk_usage('/')               # 显示出指定的挂载点情况【字节为单位】
psutil.disk_io_counters()       # 磁盘总的IO个数
psutil.disk_io_counters(perdisk=True)  # 获取单个分区IO个数

# 输出网卡信息

代码语言:javascript复制
psutil.net_io_counter() 获取网络总的IO,默认参数pernic=False
psutil.net_io_counter(pernic=Ture)获取网络各个网卡的IO

# 获取进程信息

代码语言:javascript复制
psutil.pids()     # 列出所有进程的pid号
p = psutil.Process(2047)
p.name()   列出进程名称
p.exe()    列出进程bin路径
p.cwd()    列出进程工作目录的绝对路径
p.status()进程当前状态[sleep等状态]
p.create_time()   进程创建的时间 [时间戳格式]
p.uids()
p.gids()
p.cputimes()  【进程的CPU时间,包括用户态、内核态】
p.cpu_affinity()  # 显示CPU亲缘关系
p.memory_percent()   进程内存利用率
p.meminfo()   进程的RSS、VMS信息
p.io_counters()   进程IO信息,包括读写IO数及字节数
p.connections()   返回打开进程socket的namedutples列表
p.num_threads()   进程打开的线程数

#下面的例子中,Popen类的作用是获取用户启动的应用程序进程信息,以便跟踪程序进程的执行情况

代码语言:javascript复制
import psutil
from subprocess import PIPE
p =psutil.Popen(["/usr/bin/python" ,"-c","print 'helloworld'"],stdout=PIPE)
p.name()
p.username()
p.communicate()
p.cpu_times()

# 其它

代码语言:javascript复制
psutil.users()    # 显示当前登录的用户,和Linux的who命令差不多
 
# 获取开机时间
psutil.boot_time() 结果是个UNIX时间戳,下面我们来转换它为标准时间格式,如下:
datetime.datetime.fromtimestamp(psutil.boot_time())  # 得出的结果不是str格式,继续进行转换 datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d%H:%M:%S')

0 人点赞