使用SSH将文件移动到不同的服务器?

时间:2012-12-04 22:33:51

标签: ssh

我有大量文件要从一台服务器移动到另一台服务器。

在不重载原始服务器的情况下,最好的方法是什么?

我应该对每个文件夹进行tar,然后下载到我的计算机,然后上传到其他服务器吗?

这样做的SSH命令是什么?

或者有更好的方法吗?

感谢 安迪

3 个答案:

答案 0 :(得分:4)

来自SCP参考手册:

  

任何文件名都可能包含要指明的主机和用户规范   该文件将被复制到该主机或从该主机复制。两个之间的副本   允许远程主机。

     

-p保留原始文件的修改时间,访问时间和模式。

     

-r递归复制整个目录。

scp -rp username@source:/foldername/ username@destination:/foldername

使用tar创建一个文件可能会略微减轻负载,因为一个文件上的文件处理开销不会太多...... ymmv。使用gzip压缩会减少带宽,但会在源服务器上施加更大的负载来压缩文件。

答案 1 :(得分:0)

我认为你担心“超载服务器”是没有根据的。你移动文件的任何方式都会稍微加载服务器,但这是一个微不足道的数量。

首先

targzip文件将减少网络流量,但targzip的操作将需要第一台服务器。

简单地tar可能没什么价值 - 它是一个大文件而不是许多小文件(总大小相同)。

下载然后上传几乎没有什么实际价值 - 除非您想要一份副本 - 您与每台服务器的网络连接可能比两台服务器之间的网络连接更差。

这对SuperUser来说更像一个问题。

答案 2 :(得分:0)

  1. tar + gzip / bzip2和scp to copy

  2. rsync(可以在ssh上运行)