我有一个 38GB 的“Moodle”tar 文件,需要将其从旧服务器(共享主机)(我们可将其称为“服务器 A”)传输到新服务器(专用虚拟服务器)或“服务器 B”。如果有帮助,我支持 Mediatemple。
我已经将目录打包成 tar 并使用 wget 通过 SSH 将其传输到服务器 B,但是 - 它是一个只有 100GB 的小包,而且我的磁盘容量只占了 96% - 这意味着我无法在服务器 B 上解压文件!有没有什么方法可以将这个大文件从服务器 A 传输到服务器 B,保留权限并尽量减少文件损坏的可能性,这样就不会达到磁盘限制?
虽然到目前为止我已经花了相当长一段时间来做这件事,但如果有人能提出更好的想法,我愿意放弃我原来的计划——我会非常感激!
答案1
不要使用 tar。用于rsync -av
在传输文件时保留权限。虽然像 tar 一样,但这不会保留 selinux 上下文。不过我认为这并不重要。
答案2
您可能想要购买更多的磁盘空间,但假设您不这样做,您可以......
通过管道传输 tarball,而不是下载它。
newserver# ssh olduser@oldserver "cat /path/to/tarball" | tar xf -
或者如果你没有旧服务器的 SSH 访问权限
newserver# wget -O - http://oldserver/path/to/tarball | tar xf -
要有创造力。还有其他解决方案我没有提到。