Python监控服务器状态程序

前言

最近服务器有几次被安全狗断网,没找到好的解决方法。就先写了个Python程序监控网络状态,断网5分钟强制重启服务器的脚步。

代码


import psutil
import socket
import time
import os
import datetime


def check_internet_connection():
    try:
        socket.create_connection(("www.baidu.com", 80))
        return True
    except OSError:
        return False


def saveLog():
    # 获取当前时间
    current_time = datetime.datetime.now()
    savedate = current_time.strftime("%Y-%m-%d %H:%M:%S").replace(" ", "-").replace(":", "-")
    # 打开日志文件,准备写入数据
    with open(f"log_{savedate}.txt", "a") as file:
        file.write(f"Server data snapshot at: {current_time}\n")
        # 记录 CPU 使用率、内存情况和磁盘占用情况
        cpu_percent = psutil.cpu_percent()
        file.write(f"CPU 使用率: {cpu_percent}%\n")
        memory = psutil.virtual_memory()
        file.write(f"内存占用情况: {memory.percent}%\n")
        disk_usage = psutil.disk_usage("/")
        file.write(f"根目录磁盘占用情况: {disk_usage.percent}%\n")
        # 记录网络连接数
        connections = psutil.net_connections()
        file.write(f"网络连接数: {len(connections)}\n")


def run():
    # saveLog()
    count = 0
    while True:
        if not check_internet_connection():
            count += 1
            if count >= 20:
                saveLog()
                print("连续断网 5 分钟, 准备重启服务器...")
                os.system("shutdown /r /f /t 0")
                break
            print("当前断网次数: ", count)
        else:
            print("服务器状态正常")
            count = 0

        time.sleep(15)  # 每隔5秒检查一次


if __name__ == "__main__":
    run()


  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值