我有 5 个桌面,全部运行 Ubuntu 14.04 64 位。
所有设备都通过 LAN 连接到互联网(使用 dlink 交换机),
我想从一台计算机关闭所有计算机,可以吗?如果可以,如何实现?
答案1
如果你可以通过 SSH 连接到每台计算机(我认为这是这里任何答案的基本要求),那么你就可以 ping 掉关机dbus
命令每台台式机。您可能需要调整权限(也显示在该问题及其答案中)。
我们需要做的就是对每台计算机进行循环。以下是示例。
for ip in 192.168.0.{10,15,52,62,12}; do ssh user@$ip 'dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop' done
除非您设置了 SSH 密钥身份验证,否则每次迭代都必须提供密码。听我的建议,设置基于密钥的身份验证。
最后,以防万一你不理解语法,192.168.0.{10,15,52,62,12}
Bash 扩展将扩展为:
192.168.0.10
192.168.0.15
192.168.0.52
192.168.0.62
192.168.0.12
如果您愿意,您可以列出完整的 IP。无需引用它们。
答案2
尝试使用类似 gsh 的东西,在 /etc/ghosts 中设置您的主机,然后进行 ssh 密钥交换。
然后你的命令将类似于:gsh init 0