我的目标是 ssh 到名为 gateway 的服务器,然后从那里 ssh 到名为 meerkat 的服务器。一旦我进入 meerkat,我想运行一个脚本,将文件从服务器中的目录复制到我的家庭计算机。
为了简单起见,我们可以假设我们只需要执行一次 ssh 跳转(如果这能让答案更清晰)。
本质上,如果我的家庭计算机上有一些任意的 bash 脚本 testScript.sh,我怎样才能在远程服务器上执行该脚本?
现在我已经尝试过
cat testBashScript.sh | ssh -tt gateway "ssh meerkat \" cat >> testBashScript.sh && chmod 755 testBashScript.sh && ./testBashScript.sh \""
这会产生一个非常奇怪的输出,这根本不是我所期望的。
一般来说,在我看来,如果我可以在像 bash 这样的 shell 中手动执行某些操作,那么我应该能够编写一个像我一样“行为”的脚本,可以输入到机器,并像真实用户一样响应输出可以。
在编写脚本时,是否需要使用完全不同的方式与所有内容进行交互,或者是否有一些简单的方法来完成此任务?
如果这是不可能的,那么使用脚本在远程服务器上备份文件的更简单方法是什么?
最后,如果所有其他问题都失败了,当它与 shell 环境中的用户如此不同时,如何有效地编写脚本?