在两台服务器之间传输大量文件

在两台服务器之间传输大量文件

可能重复:
将 55GB 图像传输到新服务器的最快方法

我正在从一台服务器迁移到另一台服务器。我想将数千个文件从一台服务器传输到另一台服务器。

这里最好的方法是什么?

两个系统都运行 CentOs。我要迁移的那个系统使用 DirectAdmin,另一个系统使用 cPanel。我在两个系统上都拥有 SSH 访问权限。

我目前正在对不同的文件夹进行皮重,但是当文件很大且文件量很大时,需要的时间就太长了)

答案1

从源主机:

$ rsync -avz --progress /path/to/files/ [email protected]:/path/to/files/

答案2

从我的经验来看,处理大量小文件时,通过 ssh 传输的 tar 比 rsync 更快。

我建议尝试一下。

该命令是这样的(它保留权限):

tar cXpf-/数据|ssh 用户@新服务器“tar xpf--C/新位置/”

原因可能是 tar 创建了一个连续的流并且 ssh 正在压缩它。

尝试一下并告诉我们结果。

答案3

我将研究在两台服务器之间使用带压缩的 rsync,并使用 SSH 作为“隧道”通过网络建立连接。

答案4

最好的方法是使用 rsync,但是为什么呢?

原因是,当您传输大量文件并且由于某种原因连接断开时,您无需担心哪些文件已传输,哪些未传输。

rsync 会处理这个问题,因为它会快速比较目标中的文件与源中的文件,并仅传输相关文件。这种方法既节省带宽又节省时间。

您可以使用以下语法进行 rsync

rsync -avz /path/to/source [email protected]:/path/to/destination

显然,如果你有 SSH 密钥,并且目标服务器上禁用了密码验证,请使用此

    rsync -avz /path/to/source -e "ssh -i /path/to/ssh-key" [email protected]:/path/to/destination

相关内容