基本上,我有一台计算机,我必须通过 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 上是否可用)。
答案2
您正在尝试运行需要 tty 的交互式命令,默认情况下,当您指定要在远程计算机上运行的命令时,ssh 不会分配 tty。添加标志-t
以强制其分配 tty。