当前位置: 首页 > wzjs >正文

顺企网南昌网站建设江苏运营网站建设业务

顺企网南昌网站建设,江苏运营网站建设业务,云服务器和网站备案吗,织梦网站登录这是我服务器上运行了很多服务,用来检测服务是否正常的一个小软件。需要自己打包,这是源码。如有需要也可以下载我已经打包好的文件。 import socket import tkinter as tk from tkinter import messagebox import json import time import logging fro…

这是我服务器上运行了很多服务,用来检测服务是否正常的一个小软件。需要自己打包,这是源码。如有需要也可以下载我已经打包好的文件。

import socket
import tkinter as tk
from tkinter import messagebox
import json
import time
import logging
from datetime import datetime
from colorama import init, Fore
from logging.handlers import TimedRotatingFileHandler
import threading# 初始化 colorama
init(autoreset=True)# 配置日志
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)# 创建一个 TimedRotatingFileHandler,每天轮换一次日志文件,保留 7 天的备份
handler = TimedRotatingFileHandler(filename='service_checker.log',when='midnight',  # 每天午夜轮换日志文件interval=1,  # 间隔 1 天backupCount=7,  # 保留 7 个备份encoding='utf-8'  # 指定编码格式为 UTF-8
)# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)# 为日志记录器添加处理器
logger.addHandler(handler)# 自定义日志格式化类
class ColoredFormatter(logging.Formatter):def format(self, record):# 如果是错误或异常日志,使用红色if record.levelno >= logging.ERROR:record.msg = Fore.RED + str(record.msg) + Fore.RESET# 如果是警告日志,使用黄色elif record.levelno == logging.WARNING:record.msg = Fore.YELLOW + str(record.msg) + Fore.RESET# 如果是信息日志,保持默认颜色else:record.msg = str(record.msg)return super().format(record)# 为控制台处理器设置自定义格式化
console_handler = logging.StreamHandler()
console_handler.setFormatter(ColoredFormatter())
logger.addHandler(console_handler)# 创建一个 Tkinter 根窗口,并将其隐藏
root = tk.Tk()
root.withdraw()def check_service(host, port):"""检查服务是否正常运行:param host: 服务的IP地址:param port: 服务的端口号:return: 服务是否正常运行"""try:with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.settimeout(5)result = s.connect_ex((host, port))return result == 0except Exception as e:logger.error(f"检测服务 {host}:{port} 时发生错误: {e}")return Falsedef show_alert(service_name, host, port):"""显示服务异常的提示框:param service_name: 服务名称:param host: 服务的IP地址:param port: 服务的端口号"""def alert():messagebox.showwarning("服务异常", f"服务 {service_name} ({host}:{port}) 无法正常连接!")# 使用主线程的安全方法来显示提示框root.after(0, alert)def load_services_from_config(config_file):"""从配置文件中加载服务信息:param config_file: 配置文件路径:return: 服务信息列表"""try:with open(config_file, 'r', encoding='utf-8') as file:config = json.load(file)return config.get("services", [])except Exception as e:logger.error(f"读取配置文件时发生错误: {e}")return []def main():# 加载服务配置services = load_services_from_config("services.json")if not services:logger.error("未加载到任何服务,程序即将退出。")returnlogger.info(f"开始持续检测 {len(services)} 项服务,按 Ctrl+C 可终止程序。")try:while True:# 遍历所有服务进行检测for service in services:host = service["host"]port = service["port"]name = service["name"]if check_service(host, port):logger.info(f"服务 {name} ({host}:{port}) 状态: 正常")else:logger.error(f"服务 {name} ({host}:{port}) 状态: 异常")show_alert(name, host, port)# 每次检测后等待一段时间(例如5分钟)logger.info("完成一次检测,等待下次检测...")time.sleep(300)except KeyboardInterrupt:logger.info("\n用户终止了程序,检测已停止。")if __name__ == "__main__":main()

使用方法

  1. 将上述代码保存为 service_checker.py。
  2. 确保 services.json 配置文件在同一目录下。
  3. 运行脚本后,程序会开始持续检测服务状态,每 5 分钟检测一次。
  4. 如果检测到服务不正常,会弹出提示框提醒用户,但不会阻塞其他服务的检测。
  5. 按下 Ctrl+C 可以终止程序运行。

打包为 .exe 文件

使用 pyinstaller 打包时,确保所有依赖库都被正确包含:

pyinstaller --onefile --hidden-import=colorama --hidden-import=logging.handlers service_checker.py

services.json文件示范(修改或增加、删除按照文件内形式进行修改即可)

{"services": [{"host": "192.168.10.151","port": 8079,"name": "官网后端(正式环境)"},{"host": "192.168.10.152","port": 8080,"name": "官网web(正式环境)"},{"host": "192.168.10.153","port": 8078,"name": "官网后台管理(正式环境)"},{"host": "192.168.10.154","port": 6380,"name": "redis"},{"host": "192.168.10.155","port": 8181,"name": "日志管理系统"}]
}

检测程序端口服务程序下载地址:

点击下载打包完成的程序(访问密码: 2747)


文章转载自:

http://AjZw7zSz.ktLpm.cn
http://WRKyBgiD.ktLpm.cn
http://wduoY6IC.ktLpm.cn
http://aJ1wQGsd.ktLpm.cn
http://uuN4pLpa.ktLpm.cn
http://iPf0MG4p.ktLpm.cn
http://LuXMHd4P.ktLpm.cn
http://QJct09Eo.ktLpm.cn
http://EHytB3gE.ktLpm.cn
http://TBw8oTyM.ktLpm.cn
http://IoFL4OjX.ktLpm.cn
http://LFFg0TVu.ktLpm.cn
http://jfnxqKIE.ktLpm.cn
http://gQXObJ9y.ktLpm.cn
http://ojAHqZZB.ktLpm.cn
http://CrwQjeXa.ktLpm.cn
http://jqlWMcqG.ktLpm.cn
http://fwQcejFJ.ktLpm.cn
http://G32Qec3j.ktLpm.cn
http://7Tzgjbr9.ktLpm.cn
http://nKULpksD.ktLpm.cn
http://Pn3lOMhp.ktLpm.cn
http://ekkCnJSX.ktLpm.cn
http://g6WN5kja.ktLpm.cn
http://7OTkS3lG.ktLpm.cn
http://F6fV4fR3.ktLpm.cn
http://BB6vkObm.ktLpm.cn
http://9sq8KZqb.ktLpm.cn
http://DGahq3q0.ktLpm.cn
http://SZ8a0etm.ktLpm.cn
http://www.dtcms.com/wzjs/728354.html

相关文章:

  • 做网站专用图标备案名称网站名称
  • html背景颜色代码百度seo流量
  • 网站建设明细青岛外贸假发网站建设
  • 建设公司需要网站吗大学生网站建设申报书
  • 富顺做网站如何投诉做网站的公司
  • 湖南专业网站建设服务网页开发报价单
  • 会员发布网站建设怎样知道哪个网站做推广好
  • 网站开发商品排序逻辑建筑公司企业愿景文案平台
  • 可信的邢台做网站深圳市网络营销推广平台
  • 国内做网站上市公司网站开发技术教程
  • 网站建设哪家go好2021手机能看的网站
  • 电商网站图片品牌建设理论模型
  • 摄影网站设计模板优购物官方网站购物
  • 天猫网站是怎么做seo优化的定制手机app价格
  • 想学做网站seo 在哪学 电话多少免费的行情网站下载安装
  • saas建站没有网站源代码么惠州网站制作网站
  • 瑞安这边有没有做网站的有没有专门做建材的网站
  • 深圳建站定制公司网页设计短期培训
  • 北京著名网站设计公司互联网保险模式
  • 义乌网站建设方案详细宝塔建设网站
  • 食品网站建设建议24免费医生在线咨询男科
  • 罗湖专业做网站公司王色网站
  • 公司网站制作专业公司前端开发
  • 响应式网站茶叶网站网站开发工作协议书范本
  • dede网站版权信息长沙做网站找哪家好
  • 用哪个程序做网站收录好重庆房产网站建设
  • 吕梁做网站的公司希望小学学校网站建设方案
  • 寻找南昌网站设计单位网站建设费用的请示
  • php自己做网站访问量计算福建网络营销服务
  • 有什么做衣服的网站网页首站