跟踪每天、每周、每月的计算机使用情况?

跟踪每天、每周、每月的计算机使用情况?

我正在寻找一个简单的程序来在后台运行并跟踪我的计算机使用情况(小时数),并提供每日、每周和每月时间范围的简单报告。我的环境:

  • Fedora 桌面
  • Xfce环境

我不需要它来跟踪我具体做了什么。跟踪一般正常运行时间对我来说就足够了。

然而,提取报告应该非常容易,无需编码、脚本或复杂的命令。

答案1

默认情况下,任何 Linux 计算机都会记录启动和关闭时间等事件。

如果您希望查看 Linux 从启动到关闭的持续时间(大约是计算机通电的时间),您可以使用系统的默认记帐 (utmp/wtmp)。

使用这些 shell 命令(作为普通用户,不需要 root 权限):

# last reboot
reboot   system boot  5.5.4-1-default  Fri Feb 21 14:07   still running
reboot   system boot  5.5.2-1-default  Thu Feb 20 12:53 - 14:02  (01:08)
(...)

这显示了计算机启动的启动时间和持续时间(在末尾的括号中)。

注意这不显示计算机休眠的时间(挂起到磁盘或 RAM),这需要更复杂的工作。

如果您想查看上周的时间等,您可以使用lastnew--since--until选项使用较新版本的命令来实现:

last --since "`date --date='monday 3 weeks ago' +%Y-%m-%d`" \
     --until "`date --date='monday 2 weeks ago' +%Y-%m-%d`" \
     reboot

它为您提供指定周的时间(上次重新启动)。同样的方法可以持续几个月,这里用一个命令行给出:

last --since "`date --date='2 months ago' +%Y-%m-%d`" --until "`date --date='1 month ago' +%Y-%m-%d`" reboot

默认情况下将使用该月的第一天——这似乎正是您想要的。

上面的命令行使用last看起来像这样的日期来调用命令(来自 util-linux),2019-12-27这是命令接受的少数格式之一。我们使用命令date(来自 GNU coreutils)通过格式字符串生成该格式%Y-%m-%d,告诉date要以更人性化、更易读的格式显示哪个日期。

相关内容