一位年长的亲戚使用 Ubuntu 18.04 + LXDE 桌面,主要用于上网和玩一些文字游戏。他们很少关闭电脑……上次我检查时,它已经打开了超过 15 天。
我通过 ssh 远程管理系统。
偶尔需要重新启动系统时,我想要一些方法来确定我的亲戚是否正在积极使用它,这样我就不会干扰他们。我有时会在半夜这样做,但他们睡得不好,有时会起床玩游戏。
打电话给他们是可行的,但我们之间有几个时区,有时会叫醒他们。
如果他们在玩游戏,我可以在 中看到top
,但我找不到判断他们是否在积极使用浏览器的方法。
某种鼠标和/或键盘活动指示器会很棒,但我希望远离任何类型的键盘记录器类型的软件。我怀疑存在这样的“检测到鼠标/键盘活动”的东西——让系统进入睡眠状态/激活屏幕保护程序**,如果没有别的原因将其唤醒——但我找不到它。
** 我认为他们实际上并没有使用屏幕保护程序,这只是一个例子。我认为电源管理器只是使屏幕空白。
是否在某处跟踪了“自用户上次键盘/鼠标交互以来的时间”?
任何解决方案都需要通过 ssh 实现。
有一个实用程序可以打印 X 屏幕的空闲时间:
它以毫秒为单位打印自上次键盘或鼠标输入以来的时间。
另一种选择是弹出一个问题框:
然后,如果您在几分钟内没有得到答复,只需 ctrl-c 退出并继续重新启动。
如果显示器配置为节能,您可以检查它:
看最后一行:
嗯...这只是一个想法,但是如果您通过 ssh 登录到您的亲戚正在使用的同一用户,请将
DISPLAY
环境变量设置为:1
并运行xinput test n
wheren
是与鼠标对应的数字(您可以使用xinput --list
, 在我的情况是 9),那么motion a[0]=338 a[1]=889
每当鼠标移动时,该命令将打印一行文本(格式为 )。因此,您可以将该命令的输出通过管道传输到某个脚本,该脚本将记录上次获得任何输入的时间,因此您将知道上次移动鼠标的时间(当然,这必须在后台不断运行以记录实际时间最后鼠标移动)。我认为您绝对确定的唯一方法是在他们的屏幕上“窥探”。
在他们的计算机上安装 x11vnc
sudo apt-get install x11vnc net-tools
(可选)在他们的计算机上创建一个 shell 脚本来自动化启动服务器的过程,这样您就不必每次都记住语法。请注意,
-auth
参数可能需要更改;我现在只有 Fedora 可以测试,Ubuntu 可能会将身份验证文件保存在不同的位置。在您的计算机上安装您最喜欢的 VNC 查看器应用程序。
在您的计算机上为端口 5900 设置 SSH 端口隧道。假设您使用的是 OpenSSH,请将以下内容放入您的
.ssh/config
文件中:当您想实际查看他们的屏幕时:
像往常一样通过 SSH 连接到他们的计算机。
运行 shell 脚本(或输入那个大行
sudo x11vnc
)。*启动您的 VNC 查看器应用程序,并引导它连接到
localhost
.瞧,您应该能够看到他们的屏幕。
*注意:您将收到几个警告,表明 VNC 服务器不受密码保护。这不是安全风险,因为 VNC 服务器端口只能在本地访问,这意味着任何攻击者都必须已经登录。但是,如果您真的担心,请使用
x11vnc -storepasswd
创建密码文件,然后-rfbauth /home/user/.vnc/passwd
添加x11vnc
命令行。