如何追踪计算机的正常运行时间

如何追踪计算机的正常运行时间

我有一台 Linux 桌面电脑。我不会让它 24/7 一直开着。我想收集每天开机时间的统计数据,例如:

2012-08-21: 7:52
2012-08-22: 8:43
2012-08-23: 7:36

如果计算机没有打开,则无需记录。

答案1

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

uptime >> uptime.log

之后为其设置一个 cron 作业。要了解有关如何创建 cron 作业的更多信息:创建 Cron 作业

或者您可以注册一个在线服务来为您完成此操作:正常运行时间项目

答案2

根据last手册页:

每次系统重启时,伪用户 reboot 都会登录。因此 last reboot 将显示自日志文件创建以来的所有重启日志。

因此#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)

答案3

这将每五分钟记录一次“正常运行时间”的输出。此输出还包括当前登录的用户数以及过去 1、5 和 15 分钟内计算机的平均负载:

sudo bash #root
mkdir /var/log/uptime
crontab -e

添加此行:

*/5  * * * * echo `date +\%Y\%m\%d;uptime` >> /var/log/uptime/uptime.log 2>&1

并将日志拆分 + gzip 成按周的文件:

cat <<'EOF'. > /etc/logrotate.d/uptime
/var/log/uptime/uptime.log {
    weekly
    dateext
    rotate 99999
    compress
}
EOF

然后,过了一段时间后,像这样查看每天的正常运行时间:

uplog() { (cd /var/log/uptime/;zcat uptime.log*gz;cat uptime.log) }
uplog|cut -c1-8|uniq -c|perl -aple'$_.=" ".("=" x ($F[0]/5))'

数字 288(12*24)表示计算机已运行一整天(尽管短于五分钟的重启可能无法通过此方法检测到)。

或者每个月都类似这样:

uplog|cut -c1-6|uniq -c|perl -aple'$_.=" ".("=" x ($F[0]/150))'

答案4

Tuptime 可以在执行“tuptime -l”时执行此操作,例如:

# tuptime -l
Startup:  1  at  08:55:01 AM 08/04/2015
Uptime:   24 seconds
Shutdown: OK  at  08:55:25 AM 08/04/2015

Downtime: 5 seconds

Startup:  2  at  08:55:31 AM 08/04/2015
Uptime:   20 seconds
Shutdown: OK  at  08:55:51 AM 08/04/2015

根据您所在的地区,日期格式可能会发生变化。

问候,

相关内容