2023-09-05 16:02:46 +08:00
2023-07-13 09:48:58 +08:00
2023-08-04 11:43:20 +08:00
2023-07-23 13:44:52 +08:00
2023-09-05 15:03:24 +08:00
2023-09-01 00:26:03 +08:00
2023-09-05 16:02:46 +08:00

heartbeat

用python写的简易心跳工具配合Uptime-kuma的被动监控功能当然你也可以自己实现服务端实现监测PC客户端的运行情况。

运行效果

通过访问连接服务端会实现被动检测。同时本地访问结果会回显记录在heartbeat.log如果服务端异常可以通过返回的代码进行故障排查。

使用方法

下载程序:

  1. 下载最新的版本
  2. 解压缩到任意目录

编辑配置文件:

运行前,记得打开把config.Exsample.ini配置文件复制一份改名为config.ini并打开配置接收心跳包的服务器地址。 如果不存在config.ini直接运行程序程序会将config.Exsample.ini范例配置自动复制一份。

日志文件

心跳日志会存放在heartbeat.log包括时间和返回值。例如下面是一个返回200正常值的日志

2023-08-04 11:46:15.306916 Ping: 8ms. Final URL: http://example.com/heartbeat?ping=8. Response status code: 200

执行python源代码

如果你需要直接使用源代码,可能需要用到以下几个步骤:

确保安装Python和必要的python库

可以从这里下载最新的python环境

使用命令行执行以下命令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pystray pillow requests configparser PySocks

如果希望自动检测python安装及必要的库支持可以把以下内容保存为bat文件执行。

@echo off
cd /d %~dp0
setlocal enabledelayedexpansion

:: 检查pip
for /f "tokens=1" %%i in ('pip --version 2^>^&1 ^| findstr /C:"pip"') do (
    set PIPVER=%%i
)
if "!PIPVER!" == "pip" (
    echo Pip detected!
) else (
    echo Error: pip is not installed.
    pause
    exit /b 1
)

:: 检查python
for /f "tokens=1" %%h in ('python --version 2^>^&1') do (
    set PYVER2=%%h
)
if "!PYVER2!" == "Python" (
    echo Python detected!
) else (
    echo Error: Python is not installed.
    pause
    exit /b 1
)

endlocal


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pystray pillow requests configparser PySocks
@echo All Done
pause

执行批处理

每次使用py命令并不方便可以把以下内容保存为bat文件。

@echo off
@echo heartbeat start
cd /d %~dp0
py heartbeat.py
pause

如果希望后台静默运行可以把以下内容保存为bat文件执行。

@echo off
cd /d %~dp0
start pythonw heartbeat.py

打包成exe

在确保已经安装python 的情况下使用命令行执行以下命令以安装PyInstaller

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

打包为Windows可执行程序

@echo off
cd /d %~dp0
rd /S /Q dist
pyinstaller --noconsole --add-data "config.Exsample.ini;." heartbeat.py
del /F /Q heartbeat.spec
rd /S /Q build

其中“--onefile”表示单文件模式--noconsole表示无命令行模式

Description
用python写的http心跳工具,定时发送http心跳链接,(可配合Uptime-kuma)主动上报PC客户端的运行情况。
Readme Apache-2.0 98 KiB
Languages
Python 70%
Batchfile 30%