我要更换托管服务提供商,需要将数百万上传的文件传输到新服务器。所有文件都在同一个目录中。是的。你没看错。 ;)
过去我这样做过:
- 从源服务器压缩所有文件
scp
zip 到新服务器- 解压缩
- 移动目录到合适的位置
- 无论出于何种原因,我从第 1 步开始的 zip 总是带着路径并要求我移动。
我上次执行此操作大约需要 4-5 天才能完成,这大约是我现在所用时间的 60%。
我希望有更好的方法。你有什么建议?
文件结构是散列的。像这样的东西:AAAAAAAAAA.jpg
- ZZZZZZZZZZ.txt
这是我们正在考虑的一个想法:
根据 3 个字母前缀将 zipper 分成大量的迷你 zipper 。像这样的东西:
AAAAAAAAAA.jpg - AAAZZZZZZZ.gif => AAA.zip
理论优点:
- 可以加快传输速度,允许同时传输多个 zip
- 可以限制因传输失败而损失的时间。 (等待 2 天以等待传输最终失败是可怕的)
理论缺点:
- 可能会大大减慢初始 zip,因为 zip 必须通过通配符 (
AAA*
) 查找文件,可能会通过同时运行多个 zip 线程来抵消,使用所有 CPU 而不是仅使用一个。 - 复杂性?
我们也考虑过 rsync 和 scp,但担心手动传输每个文件的费用。由于远程服务器是空的,我不需要担心那里已经有什么。
你怎么看?你会怎么做?
(是的,我最终会把它们转移到 Amazon S3,我只会给它们寄一张磁盘,但与此同时,我昨天就需要它们了!)
最佳答案
您实际上有多种选择,我最喜欢的是使用 rsync
。
rsync [dir1] [dir2]
此命令实际上会比较目录,并仅同步它们之间的差异。
有了这个,我最有可能使用以下内容
rsync -z -e ssh user@example.com:/var/www/ /var/www/
-z Zip
-e Shell Command
您还可以通过 SSH 使用 SFTP、FTP。
甚至 wget
。
wget -rc ssh://user@example.com:/var/www/
关于linux - 如何有效地将许多文件移动到新服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216204/