如何有效地将许多文件移动到新服务器?

2024-04-29

我正在更换托管提供商,需要将数百万个上传的文件传输到新服务器。所有文件都位于同一目录中。是的。你读对了。 ;)

过去我这样做过:

  1. 压缩源服务器中的所有文件
  2. scp到新服务器的 zip
  3. Unzip
  4. Move directory to appropriate location
    • 不管出于什么原因,我从第 1 步开始的 zip 总是带有路径,并要求我进行 mv。

上次我这样做大约需要 4-5 天才能完成,大约是我现在的 60%。

我希望有更好的方法。你有什么建议?

文件结构是散列的。像这样的事情:AAAAAAAAAA.jpg - ZZZZZZZZZZ.txt

这是我们正在讨论的一个想法:

根据 3 个字母前缀将 zip 拆分为大量迷你 zip。就像是:

AAAAAAAAAA.jpg - AAAZZZZZZZ.gif => AAA.zip

理论优点:

  • 可以加快传输速度,允许同时传输多个 zip
  • 可以限制因传输失败而损失的时间。 (等待2天转账最终失败真是太糟糕了)

理论上的缺点:

  • 可能会大大减慢初始 zip 的速度,因为 zip 必须通过通配符查找文件(AAA*),也许可以通过同时运行多个 zip 线程(使用所有 CPU 而不是仅使用一个 CPU)来抵消。
  • 复杂?

我们还考虑过 rsync 和 scp,但担心手动传输每个文件的费用。由于远程服务器是空的,我不需要担心已经存在的内容。

你怎么认为?你会怎么做?

(是的,我最终会将这些移动到 Amazon S3,并且我只会向它们发送磁盘,但与此同时,我昨天需要它们!)


你实际上有多种选择,我最喜欢的是使用rsync.

rsync [dir1] [dir2]

该命令实际上会比较目录,并仅同步它们之间的差异。

有了这个,我最有可能使用以下内容

rsync -z -e ssh [email protected] /cdn-cgi/l/email-protection:/var/www/ /var/www/

-z Zip
-e 外壳命令

您还可以使用 SFTP、通过 SSH 的 FTP。

Or even wget.

wget -rc ssh://[email protected] /cdn-cgi/l/email-protection:/var/www/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何有效地将许多文件移动到新服务器? 的相关文章

随机推荐