如何获取上次使用电脑的时间

问题描述

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

解决方法

我记得前段时间问过同样的问题。 这是我发现的,

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 年前的问题,可能对您有帮助。

User Idle time in Linux

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