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

使用Python监控服务器在线状态

前言

在公司内网有一台服务器,有动态的公网IP,使用DDNS对外提供服务,但是会因为停电、服务器卡死等原因导致服务器离线。服务器离线后无法及时获知,因此需要实现在服务器离线的时候能够发送消息到手机上。

思路梳理

公司办理的是联通的商务宽带,有赠送一台沃云的ECS,但是一直处于闲置状态,于是就想利用这个ECS去监听服务器的端口,一旦端口无法访问,就发送消息到手机上,端口恢复访问也可以发送消息到手机上。

具体实施

内网服务器配置

开放监听的端口

在内网服务器上开放一个端口,用于给公网上的ECS监听。

[root@rsecc ~]# yum -y install  nc
[root@rsecc ~]# nc -lk 32768 &
chkconfig管理

因为nc命令会在服务器重启后退出,因此可以使用chkconfig将nc服务设置为开机自启。

[root@rsecc ~]# vim /etc/init.d/ncserver

写入如下内容:

#!/bin/bash
# chkconfig: 3 88 88
/usr/bin/nc -lk 32768 &

配置权限,并添加到开机自启。

[root@rsecc ~]# chmod +x /etc/init.d/ncserver
[root@rsecc ~]# chkconfig --add ncserver
[root@rsecc ~]# chkconfig --list ncserver
ncserver          0:off	1:off	2:off	3:on	4:off	5:off	6:off

这样的话,当服务器重启后,nc命令也会随着服务器启动。

防火墙配置

还需要在防火墙上放行对应的端口。

[root@rsecc ~]# firewall-cmd --add-port=32768/tcp
[root@rsecc ~]# firewall-cmd --reload

公网ECS配置

编写python脚本

编写python脚本来实现功能,并将python脚本设置为开机自启。

导入需要使用的模块,这里使用了 socket、time、json、requests 四个模块。

import socket
import time
import requests
import json

编写发送消息的函数模块,我这里使用的是企业微信的webhook机器人,也可以使用钉钉、邮箱、短信等方式发送消息。

webhook = "webhook地址链接"#webhook发送消息
def send_text(webhook, content):header = {"Content-Type": "application/json","Charset": "UTF-8"}data ={"msgtype": "text","text": {"content": content}}data = json.dumps(data)info = requests.post(url=webhook, data=data, headers=header)

编写判断服务器状态的函数模块。这里使用的Python中的Socket标准库,通过构建一个TCP连接的Socket对象,使用connect_ex()方法连接服务器,如果连接无异常返回的状态码为0。通过判读返回的状态码是否为0来判断服务器是否在线。

def check_server_connection(server, port):sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)result = sock.connect_ex((server, port))if result == 0:service_status = "on"return service_statuselse:service_status = "off"return service_status

编写一个while死循环,通过判断状态码是否发生改变,来实现发送消息的效果。

service_status = "off"
prev_service_status = "off"while True:service_status = check_server_connection("服务器地址", 32768)if prev_service_status != service_status:if service_status == "off":content = "服务器已离线!"send_text(webhook, content)else:content = "服务器已上线!"send_text(webhook, content)prev_service_status = service_statustime.sleep(60)
设置为开机自启。

实现方式和内网服务器一样,使用ckhconfig命令。

[root@rsecc ~]# vim /etc/init.d/ncserver

写入如下内容:

#!/bin/bash
# chkconfig: 3 88 88
/usr/bin/python3 /opt/serveron.py &

配置权限,并添加到开机自启。

[root@rsecc ~]# chmod +x /etc/init.d/ncserver
[root@rsecc ~]# chkconfig --add ncserver
[root@rsecc ~]# chkconfig --list ncserver
ncserver          0:off	1:off	2:off	3:on	4:off	5:off	6:off

这样的话,当服务器重启后,python脚本也会随着服务器启动。

效果

image-20231212124927263

总结

至此,通过一个简易的脚本即可实现服务器的状态监控。

© 版权声明
文章:使用Python监控服务器在线状态
作者:Guangran
链接:https://www.rsecc.cn/955.html
声明:如无特别说明本文即为原创文章仅代表个人观点,版权归《广然笔记》所有,未经授权、请勿转载。

相关文章:

使用Python监控服务器在线状态

前言 在公司内网有一台服务器,有动态的公网IP,使用DDNS对外提供服务,但是会因为停电、服务器卡死等原因导致服务器离线。服务器离线后无法及时获知,因此需要实现在服务器离线的时候能够发送消息到手机上。 思路梳理 公司办理的…...

【JAVA】黑马MybatisPlus 学习笔记【二】【核心功能】

2.核心功能 刚才的案例中都是以id为条件的简单CRUD,一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外&…...

区块链实验室(30) - 区块链期刊:Distributed Ledger Technologies: Research and Practice

区块链涉及多学科及技术,众多期刊接收区块链文章。Distributed Ledger Technologies: Research and Practice是ACM出版集团的一本期刊。 Distributed Ledger Technologies: Research and Practice创刊历史很短,始于2022年,出版期数也不多。 载…...

Nginx【通俗易懂】《中篇》

目录 1.Url重写rewrite 2.防盗链 3.静态资源压缩 4.跨域问题 1.Url重写rewrite 🤩🤩🤩 1.1.rewrite书写格式 rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到rep…...

组件的二次封装

在React中,使用扩展运算符(...)来传递props的作用是将一个对象的所有可枚举属性(包括自身的和继承的)复制到新创建的对象中。当我们在二次封装组件时使用它,可以方便地将所有传递给我们的props传递给基础组…...

curl+postman 在java开发中的使用(提高效率)

概念 curl 是一个常用的命令行工具,用于发送各种类型的 HTTP 请求,包括 GET、POST、PUT、DELETE 等。它也可以用来下载文件、上传文件、设置 cookie、发送 multipart/form-data 等等。 使用 调用post接口 实际中的接口: curl --location…...

【电子取证:FTK IMAGER 篇】DD、E01系统镜像动态仿真

​ 文章目录 【电子取证:FTK Imager 篇】DD、E01系统镜像动态仿真一、DD、E01系统镜像动态仿真 (一)使用到的软件 1、FTK Imager (v4.5.0.3)2、VMware Workstation 15 Pro (v15.5.2)(二)FTK Imager 挂载镜像 1、选择 …...

netcat瑞士军刀

netcat瑞士军刀 1、nc简介3、从示例中学习2、命令格式及常用参数 1、nc简介 nc(netcat)是一个短小精悍、功能实用、简单可靠的网络工具,主要有如下作用: (1)端口侦听,nc 可以作为 server 以 TC…...

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)

【有ISSN、ISBN号!!往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…...

编程应用实际场景:台球厅怎么样用电脑给客人计时,台球计时收费系统操作教程

一、前言 准确控制顾客在店内游玩的时间,从而控制店内的各项成本,并提升店内的客流量。在顾客享受计时项目的时候,可以同时添加其他食物消费,并将单据合并统一结账。软件中的会员功能可以为客户办理会员可以使用灯控器控灯&#…...

云计算大屏,可视化云计算分析平台(云实时数据大屏PSD源文件)

大屏组件可以让UI设计师的工作更加便捷,使其更高效快速的完成设计任务。现分享可视化云分析系统、可视化云计算分析平台、云实时数据大屏的大屏Photoshop源文件,开箱即用! 若需 更多行业 相关的大屏,请移步小7的另一篇文章&#…...

高频js-----js执行机制 Event Loop

修改代码,让代码每隔1秒输出1-5 for (var i 0; i < 5;i) {setTimeout(() > {console.log(i)}, 1000)} 首先我们需要了解js的执行机制 (Event Loop) js是单线层,如果现在执行上面代码的话 会输出 5个5 这里不明白的同学可以去看一下我以前发布的关于EventLoop的文章 …...

恢复出厂设置后在 Android 上恢复照片的 6 种常用方法

恢复出厂设置可帮助您删除电子设备的所有信息并将其恢复到原始系统状态。但是&#xff0c;如果您不小心按下了恢复出厂设置按钮并从 Android 设备中删除了所有难忘的照片&#xff0c;该怎么办&#xff1f;好吧&#xff0c;您无需担心&#xff0c;因为可以通过以下一些方法来恢复…...

人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导_---人工智能工作笔记0105

之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去看,也…...

网线市场现状与发展趋势预测

随着物联网、5G、云计算等技术的迅速发展&#xff0c;全球对于高速、稳定的网络需求急剧增长&#xff0c;这进一步推动了网线市场的发展。各种网络应用场景&#xff0c;从家庭到企业、数据中心到智能城市&#xff0c;都需要大量的高质量网线来支持数据传输和通信需求。本文将对…...

力扣二叉树--第四十一天

前言 写完这三道题&#xff0c;二叉树部分就先告一段落了。其实还有很多模糊的地方。 内容 一、修剪二叉搜索树 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[l…...

计算机视觉(P2)-计算机视觉任务和应用

一、说明 在本文中&#xff0c;我们将探讨主要的计算机视觉任务以及每个任务最流行的应用程序。 二、图像内容分类 2.1. 图像分类 图像分类是计算机视觉领域的主要任务之一[1]。在该任务中&#xff0c;经过训练的模型根据预定义的类集为图像分配特定的类。下图是著名的CIFAR…...

redis-学习笔记(Jedis zset 简单命令)

zadd & zrange zadd , 插入的第一个参数是 zset , 第二个参数是 score, 第三个参数是 member 成员 内部依据 score 排序 zrange 返回 key 对应的 对应区间内的值 zrangeWithScore 返回 key 对应的 对应区间内的值和分数 示例代码 zcard 返回 key 对应的 zset 的长度 示例代…...

uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)

效果预览 弹出的内容 src\pages\goods\components\ServicePanel.vue <script setup lang"ts"> // 子组件调父组件的方法 const emit defineEmits<{(event: close): void }>() </script><template><view class"service-panel"…...

智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.平衡优化器算法4.实验参数设定5.算法…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...