博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python - 使用psutils
阅读量:5283 次
发布时间:2019-06-14

本文共 3072 字,大约阅读时间需要 10 分钟。

oshelper.py

#encoding=utf-8import psutil  import datetime    #查看cpu的信息  print u"CPU 个数 %s"%psutil.cpu_count()  print u"物理CPU个数 %s"%psutil.cpu_count(logical=False)  print u"CPU uptimes"  print psutil.cpu_times()  print ""    #查看内存信息  mem = psutil.virtual_memory()print u"系统总内存 %s G"%(mem.total/1024/1024/1024)  print u"系统可用内存 %s G"%(mem.available/1024/1024/1024)  mem_rate = int(mem.available)/float(mem.total)  print u"系统内存使用率 %s %%"%int(mem_rate*100)  #交换分区swapmem = psutil.swap_memory()print u"交换分区 %s G"%(swapmem.total/1024/1024/1024)  print u"交换分区可用 %s G"%(swapmem.free/1024/1024/1024)  print u"交换分区使用率 %s %%"%int(swapmem.percent)  #系统启动时间  print u"系统启动时间 %s"%datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")    #系统用户  users_count = len(psutil.users())  users_list = ",".join([ u.name for u in psutil.users()])  print u"当前有%s个用户,分别是%s"%(users_count, users_list)    #网卡,可以得到网卡属性,连接数,当前流量等信息  net = psutil.net_io_counters()  bytes_sent = '{0:.2f} Mb'.format(net.bytes_recv / 1024 / 1024)  bytes_rcvd = '{0:.2f} Mb'.format(net.bytes_sent / 1024 / 1024)  print u"网卡接收流量 %s 网卡发送流量 %s"%(bytes_rcvd, bytes_sent) nis=psutil.net_io_counters(pernic=True)print u"网卡 " ,tuple(nis)#进程  进程的各种详细参数  def show_process(pid):    try:        p = psutil.Process(pid)             p.name()   #进程名        #p.exe()    #进程的bin路径        #p.cwd()    #进程的工作目录绝对路径        p.status()   #进程状态        p.create_time()  #进程创建时间        #p.uids()    #进程uid信息        #p.gids()    #进程的gid信息        p.cpu_times()   #进程的cpu时间信息,包括user,system两个cpu信息        #p.cpu_affinity()  #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好        p.memory_percent()  #进程内存利用率        p.memory_info()    #进程内存rss,vms信息        p.io_counters()    #进程的IO信息,包括读写IO数字及参数        #p.connectios()   #返回进程列表        p.num_threads()  #进程开启的线程数        '''        听过psutil的Popen方法启动应用程序,可以跟踪程序的相关信息        from subprocess import PIPE        p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)        '''        p.name()        #p.username()    except:        pass'''pids=psutil.pids()for pid in pids:    show_process(pid)'''with open (r'd:\temp\test.txt','w') as f:    sys.stdout=f    for proc in psutil.process_iter():    '''        if proc.name() == "w3wp.exe":            cpu_threshold=proc.cpu_percent(interval=2)/24             print proc.name(),proc.create_time(),cpu_threshold            p.terminate() proc .kill()            Iterate over all ports this process is listening to         for con in proc.get_connections():            con    '''        pa=proc.as_dict()        print pa.get('name'),pa.get('create_time'),pa.get('pid'),pa.get('status'),pa.get('connections'),pa.get('open_files'),pa.get('cpu_percent'),pa.get('memory_percent'),pa.get('username'),pa.get('num_threads')print u"当前进程:",psutil.Process(os.getpid()).cmdline()#磁盘 磁盘的使用量等等  dps=psutil.disk_partitions()for dp in dps:    dpdu=psutil.disk_usage('/')print u"硬盘总共容量 %s G"%(du.total/1024/1024/1024)  print u"硬盘可用 %s G"%(du.free/1024/1024/1024)print u"硬盘已用 %s %%"%(du.percent)

 

转载于:https://www.cnblogs.com/sui84/p/8251910.html

你可能感兴趣的文章
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>
Ztree异步树加载
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>