Python使用psutil库监控服务器

    最近在深入学习python,买了本Python书-系统管理与自动化运维,发现真实一本有实际经验的作者写的,是一本好书。

    在开始之前可以使用: pip3 completion --bash >> .profile  来配置python3的命令补全,环境变量需要在此引用,source .profile 或者.  .profile   。

    psutil库的详细使用方法在官网psutil · PyPI 上有,可参考。

    在前期笔者使用了psutil库来完成简单的打印磁盘和内存信息,运行结果如下图。

    代码也很简单,磁盘信息调用库的psutil.virtual_memory()函数,内存信息调用 psutil.disk_usage('/')函数。

    今天看到一章节时用来详细介绍这个库的,于是测试记录于此。psutil库可用省去解析/proc下文件的烦恼,提高工作效率、提示程序的可维护性。

一、cpu

1、cpu个数

    psutil.cpu_count(),逻辑cpu个数;

    psutil.cpu_count(logical=False),物理cpu个数。

    2、cpu利用率

         psutil.cpu_percent(),获取cpu利用率;

         psutil.cpu_percent(percpu=True),获取每个cpu的利用率,笔者时单核所以只返回一个利用率,默认获取整体cpu利用率;

         psutil.cpu_percent(interval=1,percpu=True),获取interval时间内的cpu利用率,否则获取上一次调用cpu_percent这段时间的cpu利用率。

3、cpu时间花费

    psutil.cpu_times(),以命名元组的形式返回cpu花费时间;

    psutil.cpu_times(percpu=True),和cpu利用率一样,percpu指定单个cpu的花费时间。

4、cpu耗费时间的比例

      psutil.cpu_times_percent(),返回cpu耗费时间的比例;

      psutil.cpu_times_percent(percpu=True),和cpu时间花费一样,percpu指定单个cpu的花费时间比例。

5、cpu统计信息

    psutil.cpu_stats(),以命名元组的形式返回cpu统计信息,包括上下文切换、中断、软中断和系统调用次数。

二、内存

    内存使用情况

    psutil.virtual_memory(),以命名元组的形式返回内存使用情况,包括总内存、可用内存、内存利用率、buffer、cache等,出内存利用率外,其他字段都以字节为单位返回。此函数和free命令类似。

    psutil.swap_memory(),以命名元组的形式返回swap使用情况。

三、磁盘

1、挂载的磁盘

     psutil.disk_partitions(),以命名元组的形式返回所有已经挂载的磁盘,包括磁盘名称、挂载点、文件系统类型等信息。

2、磁盘使用情况

     psutil.disk_usage('/'),类似于df命令,包括磁盘容量、已使用容量、利用率等。

3、磁盘io统计信息

    psutil.disk_io_counters(),返回磁盘io统计信息,,包括读写次数、读写字节等;

    psutil.disk_io_counters(perdisk=True),与上面的区别是分磁盘返回磁盘io统计信息。

四、网络

1、网络io统计信息

    psutil.net_io_counters(),返回网络io统计信息,包括收发字节数、收发包数、出错情况和删包情况。此函数与/proc/net/dev文件内容一样。

    psutil.net_io_counters(pernic=True),返回每个网卡网络io统计信息。

2、网络连接详细信息

    psutil.net_connections(),以列表的形式返回每个网络连接的详细信息,查看网络连接状态和统计连接个数。

3、网卡配置信息

     psutil.net_if_addrs(),以字典的形式返回网卡的配置信息。

4、网卡详细信息

    psutil.net_if_stats(),返回网卡的详细信息。

五、进程

1、process进程

    psutil.Process(),查看当前进程信息;

    psutil.Process(1),查看pid为1的进程信息。

    process类里面有定义很多方法,比如:

    python_pro=psutil.Process(1870)查看python进程并赋值给  python_pro;

    python_pro.name(),进程名称;

    python_pro.create_time(),进程创建时间

    python_pro.is_running(),进程是否运行。

2、当前正在运行的进程pids

    psutil.pids(),当正在运行的进程pid;

    psutil.pids()[:4],前四个正在运行的进程pid。

3、进程是否存在

     psutil.pid_exists(1),判断一号进程是否存在。

六、其他功能

1、当前登录用户信息

    psutil.users(),返回当前登陆用户信息,包括用户名、登陆终端、终端ip,登陆时间等。

    2、系统启动时间

         psutil.boot_time(),以时间戳的形式返回系统启动时间

七、综合监控程序

zonghe

你可能感兴趣的:(Python使用psutil库监控服务器)