首页 > 解决方案 > 如何获取我上次使用计算机的时间

问题描述

xorg会话上的 GNU/Linux 中,我想做的是获取自从我停止使用计算机以来已经过去了多少秒(即没有按下任何键和/或移动光标)。

在后台运行,下面的脚本将显示secs在状态栏中。

但问题是THE_COMMAND会发生什么。

While true; do
    last_touched="$(THE_COMMAND)"
    now="$(date +%s)"
    secs=$((now - last_touched))
    echo "${secs} seconds ago"
    sleep 3
done

标签: linuxbashshellxorg

解决方案


我记得不久前问过同样的问题。这是我发现的,

last -aiF -n 1 userName

命令可以给你当前的会话。

结合起来awk可以得到如下结果

$ last -aiF -n2 username
username  :1           Wed Apr 21 13:09:00 2021   still logged in                       0.0.0.0
username  :1           Wed Apr 21 07:28:47 2021 - down                      (05:39)     0.0.0.0


$ last -aiF -n 2 ogulcan | awk '{print $10}'
in
(05:39)

这里的行是会话时间。

这些时间算作now - first boot login

但我相信这些对你来说不是最好的。所以这是一个可能对你有帮助的 8 年前的问题。

Linux 中的用户空闲时间

使用 python,您可以计算经过的空闲时间。也许这样,你可以简单地用 python 得到你想要的。


推荐阅读