首页 > 编程语言 >Python监控服务器状态程序

Python监控服务器状态程序

时间:2024-07-14 20:57:29浏览次数:8  
标签:count 监控 Python percent write psutil file import 服务器

前言

最近服务器有几次被安全狗断网,没找到好的解决方法。就先写了个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()


标签:count,监控,Python,percent,write,psutil,file,import,服务器
From: https://blog.csdn.net/roc_wei_chen/article/details/140286006

相关文章

  • 【Playwright+Python】手把手带你写一个自动化测试脚本
     如何使用代理方式打开网页 在playwright.chromium.launch()中传入proxy参数即可,示例代码如下:1、同步写法:fromplaywright.sync_apiimportsync_playwrightproxy={'server':'http:/127.0.0.1:8080'}defrun():withsync_playwright()asp:......
  • Python爬虫教程第二篇:进阶技巧与实战案例
    Python爬虫教程第二篇:进阶技巧与实战案例在上一篇教程中,我们学习了Python爬虫的基础概念、基本流程以及一个简单的入门实践案例。本篇教程将带领大家进一步探索Python爬虫的进阶技巧,并提供一个实战案例,帮助大家提升爬虫技能。一、进阶技巧处理JavaScript渲染的页面在We......
  • 教你创建Python函数信手拈来哦(递归函数)
    Python中函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段函数能提高应用的模块性,和代码的重复利用率Python提供了许多内建函数,比如print()、type()、类型转换函数等等用户也可以自己创建函数,这被叫做用户自定义函数一、定义函数1.创建函数函数使用def关键......
  • python中缺失值处理——在因子选股中的应用
    ​在因子选股当中,如果直接对整个数据库进行操作,对于股价历史数据,经常出现由于股票退市等造成的缺失值,但是在回测时,如果只用有值的股票,会由于维度不匹配而报错。因此,经常需要把整张数据表中的非空数据取出,进行处理,再填回因子矩阵中。由于基本上每次都会用到,所以本人专门写......
  • python 66 个冷知识 0714
    66个有趣的Python冷知识生成随机浮点数random.uniform(a,b)生成区间[a,b]之间的随机浮点数。反向枚举使用reversed()和enumerate()可以反向枚举列表。单元测试装饰器unittest提供了@unittest.skip装饰器用于跳过测试。动态类型Python是动态类型语言......
  • python 基础10 requests
    requests官方文档:https://requests.readthedocs.io/projects/cn/zh-cn/latest/快速上手https://requests.readthedocs.io/projects/cn/zh-cn/latest/user/quickstart.html安装找到目标路径Scriptspipinstallrequests-ihttps://pipy.douban.com/simple发送请求简洁:im......
  • ubuntu中nginx部署服务器后添加SSL证书解决SSL handshake failed问题
    文章思路:写这篇文章主要是本人在使用nginx部署好服务器后,采用浏览器打开服务器地址;在采用pyqt开发的软件中,采用QNetwork模块连接后,想下载服务器的zip压缩包时,发现QNetwork提示报了SSLhandshakefailed异常问题解决方式:添加SSL证书进行解决,目前要获取根证书有以下方式;(1)从证......
  • python-关于返回值return
    一.含义        "return"是编程语言中的一个关键字,通常用于函数或方法的结尾,表示将执行结果返回给调用者。        通俗讲就是一个事物反馈给你的东西。就像你一拍桌子,会返回声音和力的反作用力。二.作用1.负责函数返回值,返回一个参数或数据等。2.退出当......
  • 使用 Python 处理 Lumerical 导出的 .txt 文件(完结)
    使用Python处理Lumerical导出的.txt文件引言正文以,隔开的波长与透射率以\t隔开的波长与透射率引言之前在添加链接描述一文中我们已经介绍了如何将Lumerical仿真中的S参数相关数据导出为.txt文件。这里我们来分享如何使用Python对这些......
  • 用python生成词频云图(python实例二十一)
    目录1.认识Python2.环境与工具2.1python环境2.2VisualStudioCode编译3.词频云图3.1代码构思3.2代码实例3.3运行结果4.总结1.认识PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语......