【问题标题】:Check server status using another server in python在 python 中使用另一个服务器检查服务器状态
【发布时间】:2023-01-17 00:57:36
【问题描述】:

我想建立从一台服务器到另一台服务器的连接,以检查另一台服务器是否已启动。

我想通过 python 来做,但我并不经常使用套接字库。服务器应连接到另一台服务器(均运行 python 脚本)并检查其是否在线。如果是,请关闭连接并在 5 分钟后再次检查。如果关闭,它会使用 webhook url 在 discord 上发出警报,并在 5 分钟后再次检查。

我没有尝试任何东西,因为正如我所说,我从未使用过套接字库。

【问题讨论】:

  • 这取决于服务器。许多服务器都有一个“/ping”或“/heatlh”端点,您可以检查。您也可以尝试实际 ping 服务器。
  • 首先,您必须弄清楚什么才算是“向上”。另一台服务器是网站吗?那么你应该尝试实际加载一个网页,因为有可能网站服务器已经启动但网页仍然损坏。是我的世界吗? (是 Minecraft,不是吗?我知道是 Minecraft)然后你可能想询问描述和在线玩家的数量,就像 Minecraft 在你打开服务器列表时所做的一样,如果你没有得到一个回答然后它就下来了。
  • “我从未使用过套接字库。”: 所以查找一些教程和一些文档,尝试一下,然后从那里开始。你的问题是不是具体的。您给了我们一项任务,并要求我们为您完成。见How to Ask

标签: python sockets discord.py


【解决方案1】:

您可以使用内置的os包简单地ping服务器。假设服务器正在运行 Linux:

import os
import time

while True:
    serv = "123.45.67.89"  # Use the server's IP or link (ex: serv = "google.com")
    result = os.system(f"ping -c 1 {serv}")

    if result != 0:  # Not 0 means error
        # Send message on the channel
    
    time.sleep(60 * 5)  # Sleep 5 min

例如,您可以异步运行该循环。注意命令中的-c 1表示只ping一次然后停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2015-05-13
    相关资源
    最近更新 更多