我正在更换托管提供商,需要将数百万个上传的文件传输到新服务器。所有文件都位于同一目录中。是的。你读对了。 ;)
过去我这样做过:
- 压缩源服务器中的所有文件
-
scp
到新服务器的 zip
- Unzip
- 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(使用前将#替换为@)