Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例

yizhihongxing

下面就来详细讲解如何实现Python3监控Windows和Linux系统的CPU、硬盘、内存使用率和各个端口的开启情况的完整攻略。

一、监控CPU、内存、硬盘

1. 安装psutil模块

psutil是一个跨平台的库,可以方便地实现对系统的各项性能指标的获取,如CPU、内存、硬盘等。在Python3中使用pip安装即可。

pip3 install psutil

2. 获取CPU、内存、硬盘使用率

下面的代码演示了如何获取CPU、内存、硬盘的使用率,其中CPU、内存使用率直接通过psutil库获取,硬盘使用率通过计算空闲空间与总空间的比值得到。

import psutil

# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)

# 获取内存使用率
memory_percent = psutil.virtual_memory().percent

# 获取硬盘使用率
disk_percent = psutil.disk_usage('/').percent

3. 使用示例

为了方便测试,我们可以将上面的代码放入一个Python文件中,定时获取并打印出CPU、内存、硬盘使用率。

import psutil
import time

while True:
    # 获取CPU使用率
    cpu_percent = psutil.cpu_percent(interval=1)

    # 获取内存使用率
    memory_percent = psutil.virtual_memory().percent

    # 获取硬盘使用率
    disk_percent = psutil.disk_usage('/').percent

    # 输出结果
    print('CPU使用率:{}%,内存使用率:{}%,硬盘使用率:{}%'.format(cpu_percent, memory_percent, disk_percent))

    # 休眠5秒
    time.sleep(5)

运行上面的代码,我们就可以实时监控系统的CPU、内存、硬盘使用情况了。

二、监控端口开启情况

1. 安装socket模块

Python内置了socket模块,我们可以通过它来实现TCP和UDP端口的扫描,从而监控端口开启情况。

2. 扫描指定端口

下面的代码演示了如何扫描指定端口是否开启,其中我们通过socket的connect方法来检查端口是否允许连接。

import socket

def port_scan(host, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(3)
    try:
        s.connect((host, port))
        print('{}:{} is open.'.format(host, port))
        s.close()
        return True
    except Exception:
        print('{}:{} is closed.'.format(host, port))
        s.close()
        return False

3. 使用示例

为了方便测试,我们可以在代码中调用上面的port_scan方法,扫描本地的80、443端口。

port_scan('127.0.0.1', 80)
port_scan('127.0.0.1', 443)

运行上面的代码,我们就可以看到输出结果,显示了端口的开启情况。

总结

通过以上两个示例,我们可以实现对系统的CPU、内存、硬盘使用率和各个端口的开启情况进行实时监控。实际上,我们可以将以上代码整合到一个程序中,实现更为完善的系统监控功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python列表之间的数字与字符转化实例

    在Python中,可以通过一些方法将列表中的数字和字符进行转化。下面是详细的使用方法和示例说明。 将数字列表转化为字符列表 可以使用列表推导式将数字列表转化为字符列表。示例如下: # 定义数字列表 num_list = [1, 2, 3, 4, 5] # 将数字列表转化为字符列表 char_list = [str(num) for num in num_li…

    python 2023年5月13日
    00
  • python中time、datetime模块的使用

    下面我来详细讲解一下Python中time和datetime模块的使用。 一、time模块 1.1 time模块概述 time模块是Python的一个标准库,用于处理时间和日期相关的函数和类。它提供了一种简单的方式来表示时间,即以自1970年1月1日00:00:00 UTC以来的秒数来表示,并提供了一些函数以支持常见的时间和日期操作,如获取当前时间、时间戳转…

    python 2023年6月2日
    00
  • Python实现正整数分解质因数操作示例

    Python实现正整数分解质因数的操作示例 在数学中,正整数可以分解成若干个质数的积的形式,称为正整数的质因数分解。本文将使用 Python 语言实现正整数分解质因数的操作。实现过程分为两部分:一、编写判断质数函数;二、质因数分解。 判断质数函数 质数的定义是只有 1 和本身两个因数的自然数,因此判断一个数是不是质数,只需要循环判断从 2 开始到自己的平方根…

    python 2023年6月5日
    00
  • Python中的集合一起来学习一下

    Python中的集合一起来学习一下 什么是集合? 集合是 Python 中的一种无序且元素唯一的数据类型。无序意味着元素存储在集合中的顺序与添加元素的顺序不一定相同。元素唯一意味着集合中的元素不能重复。Python 中的集合类类似于数学中的集合,可以进行交集、并集、差集等基本操作。 如何创建集合? Python 中的集合可以使用花括号 {} 或 set() …

    python 2023年5月14日
    00
  • Python+OpenCV绘制多instance的Mask图像

    请看以下详细讲解。 概述 在图像处理中,我们有时候需要对图像的不同区域进行处理,这就需要我们进行实例分割——把同一张图中不同的物体分为多个实例,并对每个实例进行操作。OpenCV提供了一些实例分割方法,如GrabCut等。在某些场景下,我们还需要绘制每个实例的Mask图像,以便更直观地查看实例分割效果。本文将介绍如何使用Python+OpenCV绘制多ins…

    python 2023年5月19日
    00
  • 在python中实现强制关闭线程的示例

    在 Python 中实现强制关闭线程的方法主要是通过使用 threading.Event 或者 threading.Condition 来实现。我们可以创建一个事件对象或者条件对象,并在主线程中等待其被设置或者满足一定条件后再进行线程关闭的操作。 以下是两个示例来演示如何实现强制关闭线程: 示例1:使用 Event 实现强制关闭线程 import threa…

    python 2023年5月19日
    00
  • 将 Python str 中的连接元素保留为列表转换

    【问题标题】:Preserving concatenated elements in a Python str to list conversion将 Python str 中的连接元素保留为列表转换 【发布时间】:2023-04-02 04:29:01 【问题描述】: 我想知道是否有一种特殊的方法可以让我获取一个列表元素 ([“3D”]),并使用 for …

    Python开发 2023年4月8日
    00
  • Python开发的单词频率统计工具wordsworth使用方法

    Python开发的单词频率统计工具wordsworth使用方法 简介 Python开发的单词频率统计工具wordsworth,可以帮助用户分析文本中不同单词的出现次数和频率,是一款数据预处理必备的工具之一。wordsworth支持批量处理多个文件,用户可以指定分词方法、过滤停用词等设置,以便更好地进行数据预处理。 安装 wordsworth可以通过pip命令…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部