【问题标题】:Uptime Monitor PHP正常运行时间监视器 PHP
【发布时间】:2014-01-30 23:11:31
【问题描述】:

我正在尝试创建一个系统来使用 PHP 监控 Minecraft 服务器。然后它将定期(每 10 分钟)检查服务器的状态。如果服务器无法访问,它将计算它关闭的时间,然后将其存储在数据库中。

我已经创建了检查服务器状态的代码,但我正在努力确定服务器关闭多长时间的时间。我可以通过哪些方式来计算停机时间?

【问题讨论】:

  • 为什么不使用nagios或其他监控工具呢?您可以将脚本用作插件,该工具会关心统计数据/所有内容。
  • 你有什么样的心跳? HTTP、TCP、UDP、ICMP..
  • 因为我需要将此信息公开显示给用户。

标签: php pdo monitor minecraft


【解决方案1】:

你无法计算停机时间,我建议当发生停机时,你每隔一分钟再次检查一次,直到正常运行时间,并得到第一次停机时间和下一次正常运行时间的差值,这样你就可以得到准确的停机时间一分钟

【讨论】:

  • 我接受了这个想法并对其进行了编码以使其正常工作。谢谢
  • @MikeKormendy 抱歉回复晚了,但我创建了一个包含代码的要点。这不包含查询 Minecraft 服务器的实际代码。 gist.github.com/anonymous/6c9cdc9a01d9320cfa91
【解决方案2】:

您可以将最后一个 up-time 更新到数据库并使用它计算停机时间,并在每次计算时覆盖停机时间

【讨论】:

    【解决方案3】:

    对于这种类型的任务,crontab 是一个很棒的工具:它是一个在您设置命令时将执行已定义命令的文件。

    您可以使用名为 cron 作业的 isp 的 cpanel 工具。从那里创建一个 cron 作业非常容易。只需输入下面三行的命令部分即可。

    如果您不能使用此工具或者更喜欢直接写入您的 crontab,那么这些行就是生成的命令(来自 http://www.pantz.org/software/cron/croninfo.html):

    # Minute          Hour   Day of Month       Month          Day of Week        Command    
    # (0-59)          (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
    0,10,20,30,40,50        *          *             *                *            php /home/yourdomain/public_html/test.php
    

    我的 test.php:

    mail('mail@internets.com','time();',date('H:i:s',time()));
    

    这会每十分钟发送一次时间。从那里开始,您在 test.php(或您想要的任何名称)中修补您的状态检查器代码,并将此数据插入数据库中。我没有足够的信息来提供代码来计算时间。你的数据结构是什么?您如何与数据库交互?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多