如何打开一个新的终端窗口以通过 ssh 连接到新计算机并执行命令?

zac*_*618 5 ssh gnome command-line

基本上,我有一台计算机,我必须通过 ssh 连接并拉起大约 8 个终端来监视各种线程和日志文件。我想从我的构建机器上获得一个脚本,它可以为我完成这一切。例如,如果我想查看消息队列,我想运行如下:

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e "ssh root@IP 'watch ipcs'" 
Run Code Online (Sandbox Code Playgroud)

但是 ssh 命令似乎没有正确执行。我已经尝试了十多次这样的迭代,但没有运气。这是屏幕截图,如果有帮助的话。

在此处输入图片说明

所以基本上,我想让它成为我可以放入脚本的东西,或者甚至是可命令的东西,所以给定一个 ip 地址和一个要执行的命令,我想要一个新的终端窗口来打开到那个 ip 的 ssh 连接并执行命令。

提前致谢

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

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e 'ssh -X root@$IP "tail -f /home/log/alog.log"'
Run Code Online (Sandbox Code Playgroud)

工作正常?

pcm*_*pcm 1

不要打开多个窗口并建立多个 ssh 会话(到同一台机器?),而是查看屏幕。您可以通过 ssh 连接到主机,启动屏幕,然后从那里打开多个虚拟控制台,每个虚拟控制台对应您要运行的每个命令。

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

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


psu*_*usi 1

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