![远程访问多个桌面](https://linux22.com/image/892809/%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%E5%A4%9A%E4%B8%AA%E6%A1%8C%E9%9D%A2.png)
我想知道是否有办法创建一个脚本来远程访问多个桌面。我将一台投影仪连接到一台机器,我想根据每台源机器中的一些事件在此投影仪上显示不同的桌面。我只想显示视频,不需要访问每台机器的系统。
谢谢!
答案1
嗯,取决于你的意思
如果发生什么事
你必须通知显示主机有关该事件的信息,以便它能够获取远程视频流。
视频的来源是什么?
你可能想要做的只是将 X 输出转发到显示主机。您可以在这里找到部分答案:启用 SSH 和远程桌面访问
在这种情况下,您可以发送消息至显示主机并触发它的连接主机A或者主机B
PS我认为主机A和主机B两者都在制作视频流,并且显示主机连接至投影仪。
答案2
因此,假设您可以记录所提到的游戏中的系统日志消息,那么有一种方法可以使所有工作正常。
在 HostA 和 HostB 上以低权限用户(即非 root)运行一行简单命令
对于 HostA
tail -fn0 /var/log/syslog | awk '/CHANGE-FOCUSE/ { print | "sshpass -p PASSWORD ssh USER@DisplayHost killall -9 vncviewer && DISPLAY=:0 vncviewer -display 0 HostA:12345 && exit" }'
对于 HostB
tail -fn0 /var/log/syslog | awk '/CHANGE-FOCUSE/ { print | "sshpass -p PASSWORD ssh USER@DisplayHost killall -9 vncviewer && DISPLAY=:0 vncviewer -display 0 HostB:12345 && exit" }'
在哪里:
- 改变焦点 - 是你的游戏生成的消息
- DisplayHost - 带有投影仪的主机的 IP 或 DNS 名称
- USER - 运行 XSession 的用户帐户(即您用于投影的桌面)
- PASSORD - 该用户的密码(这不是最安全的设置,但最容易测试
- HostA - HostA 的 IP 地址或 DNS 名称
- HostB - HostB 的 IP 地址或 DNS 名称
PS 您可以使用 vncviewer 参数来使窗口全屏等。
我也强烈推荐通过 SSH 进行证书认证,以避免使用纯文本密码详情请见此处。
- 密码是一个独立的实用程序,您必须安装它才能使纯文本密码与 SSH 一起使用,因为它现在已被弃用。