当前位置: 首页>编程语言>正文

python 获取服务器的CPU、内存、磁盘和网络速率

以下是一个获取服务器的CPU、内存、磁盘和网络速率,并将数据写入MySQL数据库的Python脚本示例:

import psutil
import speedtest
import mysql.connector
from datetime import datetime
import time

# 连接MySQL数据库
cnx = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)
cursor = cnx.cursor()

# 创建数据表
create_table_query = """
CREATE TABLE IF NOT EXISTS server_stats (
    id INT AUTO_INCREMENT PRIMARY KEY,
    cpu_percent FLOAT,
    memory_percent FLOAT,
    disk_percent FLOAT,
    download_speed FLOAT,
    upload_speed FLOAT,
    timestamp DATETIME
)
"""
cursor.execute(create_table_query)

while True:
    # 获取CPU信息
    cpu_percent = psutil.cpu_percent()

    # 获取内存信息
    memory = psutil.virtual_memory()
    memory_percent = memory.percent

    # 获取磁盘信息
    disk = psutil.disk_usage('/')
    disk_percent = disk.percent

    # 获取网络速率信息
    speed_test = speedtest.Speedtest()
    download_speed = speed_test.download() / 1024 / 1024
    upload_speed = speed_test.upload() / 1024 / 1024

    # 获取当前时间
    timestamp = datetime.now()

    # 将数据插入数据库
    insert_query = """
    INSERT INTO server_stats (cpu_percent, memory_percent, disk_percent, download_speed, upload_speed, timestamp)
    VALUES (%s, %s, %s, %s, %s, %s)
    """
    insert_values = (cpu_percent, memory_percent, disk_percent, download_speed, upload_speed, timestamp)
    cursor.execute(insert_query, insert_values)
    cnx.commit()

    time.sleep(60)  # 暂停60秒,每分钟获取一次数据

# 关闭数据库连接
cursor.close()
cnx.close()

上述代码使用了mysql.connector库来连接和操作MySQL数据库。在使用之前,请确保你已经安装了该库:

pip install mysql-connector-python

在运行脚本之前,请将your_username、your_password和your_database替换为实际的MySQL数据库的用户名、密码和数据库名称。

脚本将每分钟获取一次服务器的CPU、内存、磁盘和网络速率数据,并将这些数据插入到名为server_stats的数据表中。数据表包含了ID、CPU使用率、内存使用率、磁盘使用率、下载速率、上传速率和时间戳等列。

接下来,你可以使用Flask或Django等Web框架创建一个API接口来从数据库中检索和显示这些数据。

希望这个示例对你有所帮助!如果你有更多问题,请随时提问。

-


https://www.xamrdz.com/lan/5tr1960555.html

相关文章: