有两个名为HYD13和HYD25的unix服务器。
我在HYD13中有一个脚本(在我的家庭目录中),它只从该服务器(HYD13)获取所需的数据,并且所有必需的数据都打印在文本文件中。
但我的要求是我需要在HYD25中配置相同的脚本(在路径中)并且它将从HYD13服务器获取数据并在HYD25服务器(提到的路径)中打印数据。但问题是如何从脚本中的HYD25连接HYD13服务器?
你能帮帮我吗?
答案 0 :(得分:4)
您通常会使用scp
或rsync
之类的内容,具体取决于您需要移动的数据量。 scp
可以移动文件和目录,而当您需要同步和更新目录时rsync
是好的。
两者都在讨论ssh
,所以为了避免不得不一遍又一遍地输入密码(或者更糟糕的是,将其硬编码到脚本中),请务必使用ssh密钥和ssh-agent。这使您无需输入密码即可登录服务器,而是使用存储的密钥,以及与登录帐户相关的所有密钥。 Github有a good tutorial on creating keys and adding them to an ssh-agent。 Ubuntu也有a good tutorial which covers ssh in more detail and how to put the key on the remote machine.
最后,您不必将私钥放在HYD13和HYD25上,而是可以将这些密钥保留在一台计算机上,并在登录HYD13或HYD25时使用ssh key fowarding来使用这些凭据。再次,Github has a nice tutorial on how to do this。
答案 1 :(得分:1)
我希望HYD13和HYD25可以通过互联网或局域网或任何其他方式相互通信。如果是的话,
您可以通过ssh
从HYD25执行脚本 ssh username@HYD13 '< bash path-to-script-on-HYD13 >'
这将在HYD25终端上打印该脚本的输出,您可以将其重定向到任何文本文件。
如果脚本本身将数据写入HYD13上的本地文件,您只需cat
它就可以在HYD25的终端上打印文件内容
ssh username@HYD13 '< bash path-to-script-on-HYD13 >; cat <script's output file>'
希望这是你想要的。