我有大量文件想从一台服务器移动到另一台服务器。
在不使原始服务器超载的情况下,最好的方法是什么?
我是否应该对每个文件夹进行 tar,然后下载到我的计算机,然后再上传到另一台服务器?
这样做的 SSH 命令是什么?
或者有没有更好的方法来做到这一点?
谢谢安迪
我有大量文件想从一台服务器移动到另一台服务器。
在不使原始服务器超载的情况下,最好的方法是什么?
我是否应该对每个文件夹进行 tar,然后下载到我的计算机,然后再上传到另一台服务器?
这样做的 SSH 命令是什么?
或者有没有更好的方法来做到这一点?
谢谢安迪
来自 SCP 参考手册:
任何文件名都可以包含主机和用户规范,以指示文件将被复制到该主机/从该主机复制。允许在两个远程主机之间进行复制。
-p 保留原始文件的修改时间、访问时间和模式。
-r 递归复制整个目录。
scp -rp username@source:/foldername/ username@destination:/foldername
使用 tar 创建一个文件可能会稍微减少负载,因为在一个文件上不会有太多的文件处理开销...ymmv。使用 gzip 压缩会减少带宽,但会在源服务器上增加更大的负载来压缩文件。
我认为您对“服务器超载”的担忧是没有根据的。移动文件的任何方式都会稍微加载服务器,但这是微不足道的。
tar
首先对文件进行ing 和gzip
ing 会减少网络流量,但是tar
ing 和gzip
ing 的操作将需要第一台服务器的工作。
简单tar
的 ing 可能没有多大价值——它是一个大文件而不是许多小文件(总大小相同)。
下载然后上传几乎没有实际价值——除非你也想要一个副本——你到每台服务器的网络连接可能比两台服务器之间的网络连接更差。
不过,这对于 SuperUser 来说更像是一个问题。
tar+gzip/bzip2 和 scp 复制
rsync(它可以通过 ssh 工作)