如何在unix中将数据从unix服务器提取到另一台服务器?

时间:2017-02-02 04:44:57

标签: perl shell unix server

有两个名为HYD13和HYD25的unix服务器。

我在HYD13中有一个脚本(在我的家庭目录中),它只从该服务器(HYD13)获取所需的数据,并且所有必需的数据都打印在文本文件中。

但我的要求是我需要在HYD25中配置相同的脚本(在路径中)并且它将从HYD13服务器获取数据并在HYD25服务器(提到的路径)中打印数据。但问题是如何从脚本中的HYD25连接HYD13服务器?

你能帮帮我吗?

2 个答案:

答案 0 :(得分:4)

您通常会使用scprsync之类的内容,具体取决于您需要移动的数据量。 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>'

希望这是你想要的。