代码之家  ›  专栏  ›  技术社区  ›  Jas

linux正常运行时间历史记录

  •  32
  • Jas  · 技术社区  · 16 年前

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

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

    更新: Upted是我正在寻找的信息,不知道如何在代码中grep这些信息。为db管理我自己的脚本听起来最适合应用程序。

    12 回复  |  直到 15 年前
        1
  •  52
  •   Simon A. Eugster    5 年前

    安装 uptimed . 这正是你想要的。

    编辑:

    您可以很容易地将其包含在PHP页面中,如下所示:

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

    Examples

        2
  •  30
  •   etchasketch    16 年前

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

    uptime >> uptime.log
    

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

        3
  •  28
  •   Community Nick Dandoulakis    7 年前

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

    使现代化

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

        4
  •  14
  •   Pupil    11 年前

    根据 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)
    
        5
  •  14
  •   Willi Mentzel user670265    7 年前

    试试这个:

    last | grep reboot 
    
        6
  •  2
  •   Shermozle    16 年前

    The Uptimes Project 是一个第三方跟踪它的选项,带有一系列平台的软件。

    Debian上可用的另一个工具是 uptimed

        7
  •  2
  •   paxdiablo    10 年前

    我将创建一个cron作业,以所需的分辨率(比如10分钟)运行,方法是输入以下[on] 单行-我只是为了格式化而将它分隔开]在您的crontab中(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文件。然后,您可以手动检查此文件以了解信息,或者编写脚本以根据需要对其进行处理。

    每当正常运行时间缩短时,就会从上一条记录开始重新启动。当线路之间存在较大间隙(即,超过预期的十分钟)时,机器在此期间停机。

        8
  •  1
  •   Kyle Cronin    16 年前

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

    http://uptimes-project.org/

        9
  •  1
  •   John Boker    16 年前

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

    如果正确关机,您可以在关机时运行一个命令以节省正常运行时间,这样您就可以在重新启动后重新读取该命令。

        10
  •  1
  •   Slet    13 年前

    或者你可以利用时间 https://sourceforge.net/projects/tuptime/ 总的正常运行时间。

        11
  •  1
  •   rfmoz    10 年前

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

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

        12
  •  1
  •   Jan Schermer    5 年前

    因为我在这里还没有找到一个有助于追溯的答案,也许这会对某些人有所帮助。

    它将类似于: 2019-01-28T06:25:25.459477+00:00SomeServer内核:[44114473.614361]somemessage

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

        13
  •  0
  •   peterh Eli    11 年前

        14
  •  0
  •   sebisnow kitofr    4 年前

    使用系统日志

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

    要获取月份和日期的系统开始时间grep并仅显示前几行,请执行以下操作:

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

    关机时间

    要获取月份和日期的系统关闭时间grep并仅显示最后几行,请执行以下操作:

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