Python 做简单的系统监控

查看 73|回复 9
作者:fengxiaoxiao7   
Python 做简单的系统监控
  • 在linux下有许许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等,要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。而且对例如Windows系统支持并不友好。
  • Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。顾名思义,psutil = process and system utilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。

    需要用到的库
  • psutil
  • 安装:pip install psutil

    基本使用
    import psutil
    ## 获取CPU信息
    print(psutil.cpu_count()) # CPU逻辑数量
    print(psutil.cpu_count(logical=False)) #CPU物理核心
    ## 统计CPU的用户/系统/空闲时间:
    print(psutil.cpu_times())
    ## 获取内存信息
    print(psutil.virtual_memory()) ## 获取物理内存
    ## 获取磁盘信息
    print(psutil.disk_partitions()) # 磁盘分区信息
    print(psutil.disk_usage('D:\\') )# 磁盘使用情况
    ## 获取网络信息
    print(psutil.net_io_counters()) ## 获取网络读写字节/包的个数
    ## 获取进程信息
    p = psutil.Process(3776)  # 获取指定进程ID=3776,其实就是当前Python交互环境
    print(p.name()) # 进程名称
    print(p.exe()) # 进程exe路径
    print(p.cmdline()) # 进程启动的命令行
    p.terminate() # 结束进程
    拓展
  • psutil还可以获取用户信息、Windows服务等很多有用的系统信息,具体请参考psutil的官网:https://github.com/giampaolo/psutil

    系统, 信息

  • snakeyuna   


    whoami233 发表于 2023-2-21 14:10
    我看Github上写的是 Supported Python versions are 2.7, 3.4+ and PyPy.

    OK,下个2.7去
    whoami233   


    snakeyuna 发表于 2023-2-21 14:08
    python版本用的是哪个?2.7?3.8?还是3.11?

    我看Github上写的是 Supported Python versions are 2.7, 3.4+ and PyPy.
    snakeyuna   

    python版本用的是哪个?2.7?3.8?还是3.11?
    15820394839   

    一般采集都是用python2.7,然后下发到所有节点采集数据,入库
    fengxiaoxiao7
    OP
      


    snakeyuna 发表于 2023-2-21 14:08
    python版本用的是哪个?2.7?3.8?还是3.11?

    3.x版本也适用
    vectorwang   

    能够结束后台没有用的进程吗?怎么筛选结束?
    fengxiaoxiao7
    OP
      


    vectorwang 发表于 2023-2-21 15:18
    能够结束后台没有用的进程吗?怎么筛选结束?

    psutil.pids() # 列出所有进程ID
    然后可以根据进程id获取进程名进行筛选
    laustar   

            用心讨论,共获提升!
    jik2qian   

    简易可行
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部