检查 Bash 脚本中的用户活动

检查 Bash 脚本中的用户活动

我正在写一个脚本(在多功能台式机上运行),我想检查其中是否没有用户活动。

非活动定义为:

  1. 在过去的 N 分钟内,任何使用 GUI 的用户都没有与其进行交互(=没有鼠标或键盘输入)。
  2. 任何远程 ssh 连接的用户在过去 N 分钟内未运行任何命令或传输数据。

到目前为止我已经到了哪里

广告 1)我唯一想到的是xprintidle我过去使用过它,它是检查当前用户空闲时间的可靠方法,但似乎不适用于“任何当前或未来登录或未登录的用户” “ 设想。

广告2)我可以使用以下方法确定是否有任何打开的会话:

sudo netstat -tnpa | grep 'ESTABLISHED.*sshd'

这很好用,但并不能完全检查活动,我想忽略已打开但未主动使用的会话。

问题

  1. 您能为这两项检查中的任何一项提出解决方案吗?
  2. 有没有更好的综合/通用方法(例如程序)来进行这些检查?

相关内容