如何检查用户闲置多less分钟?

我想写一个脚本,显示用户闲置多less分钟。 自键盘和鼠标的最后一次触摸。 例:

#!/bin/bash while true do command_lines... ... sleep 60 echo $var done 

结果:

计算机/用户闲置1分钟。

电脑/用户闲置2分钟。

电脑/用户闲置5分钟。

我们能做到吗? 它可以在Bash,Python等

“w”命令应该有助于从手册页:

w – 显示谁login了,他们在做什么。

 # w | awk '{if (NR!=1) {print $1,$5 }}' USER IDLE root 0.00s 

键盘和鼠标在多用户系统上不是一个明确的概念,在这个系统中可以有多个X服务器在机器上运行,有些连接到一个或多个物理键盘或鼠标,一些不是,或者远程X服务器,到,或者bash运行在ssh上的shell,还有很多更多的方法让“bash”从用户那里获取input信息。

“xprintidle”会给你所连接的X服务器的空闲时间(X服务器可能是本地或远程的,甚至是本地的,它可能不一定是系统上当前活动的)

$ TTY的修改时间会告诉你terminal的空闲时间。 stat -c%Y“$ TTY”是以秒为单位的最后一次修改时间,您可以减去“$(date +%s)”(如果在GNU系统上)。