【问题标题】:linux uptime historylinux正常运行时间历史
【发布时间】:2008-09-17 02:59:11
【问题描述】:

如何获取我的 debian 机器的正常运行时间历史记录?重新启动后,我没有看到 uptime 命令打印正常运行时间历史记录的选项。如果重要的话,我想使用这些正常运行时间在 php 中绘制页面,以显示我的网络服务器在启动之间的正常运行时间长度。

更新: 不确定它是基于时间长度还是最后一次在重新启动时重置,但我只使用最后一个命令获得最新的启动时间戳。 last -x 也不会返回任何进一步的信息。听起来脚本是我最好的选择。

更新: Uptimed 是我正在寻找的信息,不知道如何在代码中 grep 该信息。管理我自己的数据库脚本听起来最适合应用程序。

【问题讨论】:

  • 您可以每 5 分钟在数据库或文件中记录一次正常运行时间并将其打印到图表中,这样如果服务器重新启动,您可以在图表中看到正常运行时间为峰值
  • +1 但是... 谁需要 Debian 系统的正常运行时间历史?这是我的一个 Debian 机器上的正常运行时间:# uptime 23:51:06 up 1067 days :) (是的,一台服务器很快就会达到 3 年的正常运行时间......天哪,我喜欢Debian 的稳定性 :) 有趣的是,我意识到在这 3 年中时钟确实漂移了很多(马上解决这个问题)

标签: linux


【解决方案1】:

last 命令将为您提供系统的重启时间。您可以计算每次连续重启之间的差异,这应该可以延长机器的正常运行时间。

更新

1800 INFORMATION答案是更好的解决方案。

【讨论】:

  • 然而这并没有考虑关机。伪用户重启仅在系统重启时出现。
  • 这是否也包括帐户重启?
  • 对我来说确实考虑了关机,似乎是最好的解决方案:)
【解决方案2】:

试试这个:

last | grep reboot 

【讨论】:

  • 那太好了,你能解释一下如何从上一个命令中获得正常运行时间吗?
  • 你可以运行last reboot
【解决方案3】:

根据last手册页:

每次系统重新启动时,伪用户重新启动登录。 因此,上次重新启动将显示自日志文件以来所有重新启动的日志 已创建。

#last reboot 命令的最后一列为您提供正常运行时间历史记录:

#last reboot
reboot   system boot  **************** Sat Sep 21 03:31 - 08:27 (1+04:56)   
reboot   system boot  **************** Wed Aug  7 07:08 - 08:27 (46+01:19)

【讨论】:

    【解决方案4】:

    安装uptimed。它完全符合您的要求。

    编辑:

    您可以像这样轻松地将其包含在 PHP 页面中:

    <? system("/usr/local/bin/uprecords -a -B"); ?>
    

    Examples

    【讨论】:

    • 这是对这个问题的最佳和真实答案。
    • 第二个链接坏了。
    • 公平地说,7 年前我回答了这个问题。不幸的是,我现在无法追踪这些示例
    • 只需运行uprecords --help 寻求帮助。它并不总是在/usr/local/bin
    【解决方案5】:

    您可以创建一个运行正常运行时间并将其转储到文件的简单脚本。

    uptime >> uptime.log
    

    然后为它设置一个 cron 作业。

    【讨论】:

      【解决方案6】:

      使用系统日志

      适合任何来这里寻找过去正常运行时间的人。 @1800_Information 的解决方案是对未来的一个很好的建议,但我需要找到我过去在特定日期的正常运行时间的信息。

      因此,我使用 syslog 来确定系统启动的那一天(当天的第一个日志条目)以及系统再次关闭的时间。

      开机时间

      获取月份和日期的系统开始时间 grep 并仅显示第一行:

      sudo grep "May 28" /var/log/syslog* | head
      

      关机时间

      获取系统关闭时间 grep 月份和日期并仅显示最后几行:

      sudo grep "May 28" /var/log/syslog* | tail
      

      【讨论】:

        【解决方案7】:

        由于我在这里没有找到可以追溯的答案,也许这会对某人有所帮助。

        kern.log(取决于您的发行版)应该记录一个时间戳。 它会是这样的: 2019-01-28T06:25:25.459477+00:00 someserver 内核:[44114473.614361] somemessage

        “44114473.614361”表示自上次启动以来的秒数,您可以从中计算正常运行时间而无需安装任何东西。

        【讨论】:

          【解决方案8】:

          这不会在两次启动之间存储,但The Uptimes Project 是第三方跟踪它的选项,带有适用于各种平台的软件。

          Debian 上可用的另一个工具是 uptimed,它跟踪引导之间的正常运行时间。

          【讨论】:

            【解决方案9】:

            我将创建一个 cron 作业,通过在您的 crontab 中输入以下 [on one 单行 - 我刚刚将其分开以进行格式化],以所需的分辨率(比如 10 分钟)运行(cron -l 列出,cron -e 编辑)。

            0,10,20,30,40,50 * * * *
                /bin/echo $(/bin/date +\%Y-\%m-\%d) $(/usr/bin/uptime)
                >>/tmp/uptime.hist 2>&1
            

            这会在机器运行时每十分钟将日期、时间和正常运行时间附加到 uptime.hist 文件中。然后,您可以手动检查此文件以找出信息或编写脚本以根据需要对其进行处理。

            只要正常运行时间减少,就会从上一个记录开始重新启动。当线路之间的间隔很大时(即超过预期的十分钟),机器在这段时间内一直处于停机状态。

            【讨论】:

            • 需要用反斜杠转义百分号,否则 cron 会解释它们
            【解决方案10】:

            此信息通常不会保存。但是,您可以注册一个在线服务来为您做这件事。您只需安装一个客户端,它会每 5 分钟将您的正常运行时间发送到服务器,该站点将向您显示正常运行时间图表:

            http://uptimes-project.org/

            【讨论】:

            • 当我可以简单地将数据存储在自己的机器上时,为什么还要将数据发送到某个服务器呢?
            【解决方案11】:

            我认为此信息不会在重新启动之间保存。

            如果正确关闭,您可以在关闭时运行命令以节省正常运行时间,这样您就可以在启动备份后读取它。

            【讨论】:

              【解决方案12】:

              或者您可以使用 tuptime https://sourceforge.net/projects/tuptime/ 来计算总正常运行时间。

              【讨论】:

              • 我还不知道 tuptime,但这是一个很棒的发现。效果很好
              【解决方案13】:

              您可以使用 tuptime,这是一个简单的命令,用于报告 linux 中的总正常运行时间,使其在重新启动之间保持不变。

              http://sourceforge.net/projects/tuptime/

              【讨论】:

                【解决方案14】:

                Nagios 甚至可以制作非常漂亮的图表。

                【讨论】:

                  猜你喜欢
                  • 2023-04-02
                  • 2011-09-15
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-05-24
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多