如何打开一个新的终端窗口以 ssh 进入新计算机并执行命令?

如何打开一个新的终端窗口以 ssh 进入新计算机并执行命令?

基本上,我有一台计算机,我必须通过 ssh 进入并启动大约 8 个终端来监控各种线程和日志文件。我希望我的构建机器上有脚本可以为我完成这一切。例如,如果我想查看消息队列,我想运行如下代码:

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e "ssh root@IP 'watch ipcs'" 

但是 ssh 命令似乎无法正确执行。我尝试了十几次,但都没有成功。以下是屏幕截图,希望对您有帮助。

在此处输入图片描述

所以基本上,我希望将其放入脚本中,甚至是可命令的东西,因此给定一个 IP 地址和一个要执行的命令,我希望有一个新的终端窗口来打开到该 IP 的 ssh 连接并执行该命令。

提前致谢

**编辑 我似乎能够做到这一点,并使用上述命令执行大多数命令,但该watch命令不起作用,ssh所以也许语法不是问题。是否有原因watch可能在这里不起作用,在哪里

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e 'ssh -X root@$IP "tail -f /home/log/alog.log"'

工作正常?

答案1

无需打开多个窗口并建立多个 ssh 会话(到同一台机器?),只需查看屏幕即可。您可以 ssh 到主机,启动屏幕并从那里打开多个虚拟控制台,每个要运行的命令一个。

screen 的真正优点在于,如果您丢失了 ssh 连接,您可以创建一个新连接并重新连接到正在运行的 screen 会话。这真的很酷。还有 tmux,这是一个类似的程序(不确定它在不同的 Linux 上是否可用)。

参考:http://en.wikipedia.org/wiki/GNU_Screen

答案2

您正在尝试运行需要 tty 的交互式命令,默认情况下,当您指定要在远程计算机上运行的命令时,ssh 不会分配 tty。添加标志-t以强制其分配 tty。

相关内容