美文网首页
使用psutil获取系统信息

使用psutil获取系统信息

作者: 无神 | 来源:发表于2017-11-22 17:34 被阅读60次

    在Python中,我们可以使用psutil这个第三方模块方便的获取到系统信息。顾名思义,psutil = process and system utilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。

    使用psutil获取信息的Python记录如下:

    #-*-coding: utf-8-*-
    import psutil
    
    c = psutil.cpu_count() #CPU 逻辑数量
    c1 = psutil.cpu_count(logical=False) #CPU 物理核心
    print('CPU 逻辑数量 %d' % c)
    print('CPU 物理核心 %d' % c1)
    
    time = psutil.cpu_times() #统计CPU的用户/系统/空闲时间
    print(time)
    
    #实现类似top命令的CPU使用率,每秒刷新一次,累计n次
    
    def top(n):
    
        for x in range(n):
           list = psutil.cpu_percent(interval=1, percpu=True)
           print(list)
    
    #top(10)
    
    #获取内存信息
    m1 = psutil.virtual_memory() #获取物理内存信息,返回以字节为单位的整数
    m2 = psutil.swap_memory() #获取交换内存信息,返回以字节为单位的整数
    print(m1)
    print(m2)
    
    #获取磁盘信息
    print('--------获取磁盘信息---------')
    d1 = psutil.disk_partitions() #磁盘分区信息
    d2 = psutil.disk_io_counters() #磁盘IO
    d3 = psutil.disk_usage('/') #磁盘使用情况
    print(d1)
    print(d2)
    print(d3)
    
    #获取网络信息  此处需要超级权限
    # print('-----------获取网络信息-----------')
    # netc = psutil.net_io_counters() # 获取网络读写字节/包的个数
    # address = psutil.net_if_addrs() # 获取网络接口信息
    # net_status = psutil.net_if_stats()# 获取网络接口状态
    # net_con = psutil.net_connections() #获取网络连接
    # print(netc)
    # print(address)
    # print(net_status)
    # print(net_con)
    
    #获取进程信息
    pids = psutil.pids() #get all process ids
    print(pids)
    
    currentp = psutil.Process(1000) #use pid get current process
    print(currentp)
    
    pname = currentp.name() #name
    print(pname)
    
    pexe = currentp.exe() #process exe path
    print(pexe)
    
    pcwd = currentp.cwd() #process work dir
    print(pcwd)
    
    pcmdline = currentp.cmdline() #process start command line
    print(pcmdline)
    
    ppid = currentp.ppid()
    print(ppid)
    
    parent = currentp.parent()
    print(parent)
    
    children = currentp.children() #get children list
    print(children)
    
    status = currentp.status()
    print(status)
    
    username = currentp.username()
    print(username)
    
    create_time = currentp.create_time() #process create time
    print(create_time)
    
    terminal = currentp.terminal()
    print(terminal)
    
    cputime = currentp.cpu_times() #process use cpu time
    print(cputime)
    
    memory_info = currentp.memory_info() #process use memory info
    print(memory_info)
    
    open_files = currentp.open_files()
    print(open_files)
    
    connections = currentp.connections() #network connections
    print(connections)
    
    num_threads = currentp.num_threads() #process thread number
    print(num_threads)
    
    threads = currentp.threads() #all threads info
    print(threads)
    
    environ = currentp.environ() #进程环境变量
    print(environ)
    
    terminate = currentp.terminate() #end process
    print(terminate)
    
    

    温馨提示:获取网络连接和root用户的进程信息需要root权限

    相关文章

      网友评论

          本文标题:使用psutil获取系统信息

          本文链接:https://www.haomeiwen.com/subject/yodovxtx.html