我有一台 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
根据您所在的地区,日期格式可能会发生变化。
问候,