如何获取debian盒的正常运行时间历史记录?重新启动后,我没有看到uptime命令的选项来打印正常运行时间的历史记录。如果重要的话,我想利用这些正常运行时间在php中绘制一个页面,以显示我的web服务器在启动之间的正常运行时间。
更新: 不确定它是基于一段时间还是最后一次在重启时重置但我只用最后一个命令得到最近的启动时间戳。最后-x也不会返回任何进一步的信息。听起来像脚本是我最好的选择。
更新: Uptimed是我正在寻找的信息,不知道如何在代码中grep该信息。管理我自己的数据库脚本听起来最适合应用程序。
答案 0 :(得分:47)
答案 1 :(得分:26)
您可以创建一个运行正常运行时间并将其转储到文件的简单脚本。
uptime >> uptime.log
然后为它设置一个cron作业。
答案 2 :(得分:24)
答案 3 :(得分:7)
根据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 :(得分:5)
试试这个:
last | grep reboot
答案 5 :(得分:2)
这不存储在引导之间,但The Uptimes Project是第三方选项,可以使用适用于各种平台的软件进行跟踪。
Debian上另一个可用的工具是uptimed,用于跟踪靴子之间的正常运行时间。
答案 6 :(得分:2)
我会创建一个cron作业,以所需的分辨率(例如10分钟)运行,在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文件中。然后,您可以手动检查此文件以找出信息或编写脚本以根据需要处理它。
每当正常运行时间减少时,自上次记录以来就重新启动了。当线之间存在较大间隙时(即超过预期的十分钟),机器在此期间一直处于停机状态。
答案 7 :(得分:1)
我不认为这些信息会在重新启动之间保存。
如果正确关闭,您可以在关机时运行一个可以节省正常运行时间的命令,这样您就可以在启动后重新读取它。
答案 8 :(得分:1)
此信息通常不会保存。但是,您可以注册一个可以为您执行此操作的在线服务。您只需安装一个客户端,每隔5分钟将您的正常运行时间发送到服务器,该网站将向您显示您的正常运行时间图表:
答案 9 :(得分:1)
或者您可以使用tuptime https://sourceforge.net/projects/tuptime/获取总的正常运行时间。
答案 10 :(得分:1)
你可以使用tuptime,一个简单的命令来报告linux中的总运行时间,以便重新启动它。
答案 11 :(得分:1)
由于我在这里没有找到可以追溯回溯性的答案,也许这会对某人有所帮助。
kern.log(取决于您的分布)应该记录一个时间戳。 它将类似于: 2019-01-28T06:25:25.459477 + 00:00 someserver内核:[44114473.614361] somemessage
“ 44114473.614361”表示自上次启动以来的秒数,由此您可以计算正常运行时间而无需安装任何东西。
答案 12 :(得分:0)
Nagios可以制作出非常漂亮的图表。
答案 13 :(得分:-1)
对于任何来这里搜索过去正常运行时间的人。 @ 1800_Information的解决方案对于将来是一个很好的建议,但是我需要查找有关特定日期过去的正常运行时间的信息。
因此,我使用syslog来确定何时启动系统(当天的第一条日志记录)以及何时再次关闭系统。
要获取月和日的系统开始时间grep并仅显示第一行:
sudo grep "May 28" /var/log/syslog* | head
要获取月和日的系统关闭时间grep并仅显示最后几行:
sudo grep "May 28" /var/log/syslog* | tail