将大量数据迁移到另一台服务器的最佳方法是什么?


What's the best way to migrate large amounts of data to another server?

我目前正在将Magento安装迁移到一个新的,独立的服务器上,我想知道除了FTP程序(如FileZilla)之外,是否有任何方法可以使用。备份大小约为4GB,因此下载并上传到新位置需要花费数小时。

有没有办法在服务器之间复制/移动文件?我研究了PHP的FTP功能,但我不确定这是否是正确的方法。我试着搜索以前的问题,但我发现的都是Python和c++的解决方案,我不太舒服使用…

tar cfz - /path/to/your/data|ssh user@newserver.com echo > oldserver.tar.gz

是的,与 SSH scp

假设您有ssh访问权限(在两个服务器上)并且在linux机器上工作,您可以通过ssh登录到旧服务器,然后使用scp:

scp /path/to/backup.tar.gz username@new-server.com:/path/on/new/server

可能在服务器之间,但是您需要

tar,如果你愿意,可以压缩它。您可以使用本地PHP扩展,或者pear扩展。

你需要解压缩

  1. 在源服务器上生成备份的压缩文件
  2. 在命运服务器上做一个写tar的脚本,这里可能有两种情况。

    • 可以直接连接到http $tar = new Archive_Tar('http://my-old-host.tld/archive.tar');

    • 您需要先下载。卷曲http://www.webdigity.com/index.php?action=tutorial;code=45或梨http://pear.php.net/manual/en/package.http.http-download.php

    然后使用pear Archive_tar解压(如果添加压缩,也需要在这里添加)

    $tar = new Archive_Tar('http://my-old-host.tld/archive.tar');$ tar ->提取(目录名(文件)。/backup_from_server);

我认为最简单的HTTP兼容方式。祝你过得愉快。

使用SSH要简单得多
tar -jcvf - /backup-directory | ssh user@destiny-server sh -c 'mkdir backup; cd backup; tar -jxvf -'

这个发送压缩了网络中的流,使其更快。