将30GB的tar文件从一台远程服务器传输到另一台远程服务器-受磁盘空间限制


8

我有一个38GB的“ Moodle” tar文件,需要从旧服务器(共享主机)传输,我们可以将其称为“服务器A”到新服务器(专用虚拟机)或“服务器B”。如果可以的话,我在Mediatemple。

我已经压缩了目录,并使用wget通过SSH将其传输到服务器B,但这是一个很小的100GB软件包,我的磁盘容量为96%,这意味着我无法将文件解压缩到服务器B上!有什么方法可以将这个巨大的文件从服务器A传输到服务器B,同时保留权限并尽可能减少文件损坏,而这不会使我达到磁盘限制?

到目前为止,我已经花了很多时间,但如果有人可以提出更好的主意,我将放弃我原来的计划-我将非常感谢!

Answers:


21

不要焦油。用于rsync -av在传输文件时保留权限。虽然像tar一样,但这并不能保留selinux上下文。并不是说我认为那很重要。


1
丹尼斯,您好,感谢您的答复。我不认为您可以详细说明如何使用rsync命令?或提供有用的文章?再次感谢
alexbass

1
有用的文章应该是rsync联机帮助页:)但总而言之:如果您有从serverb到servera的ssh访问,请在serverb上运行:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker

1
如果不确定如何在所使用的操作系统上使用基本命令,请从帮助工具开始。在Unix机器上,通常类似于man rsyncrsync --help
mfinni

1
-a意味着-r(还有许多其他标志,人们一直忘了,直到-a被添加为“这些是进行备份的有用标志” 为止)
Dennis Kaarsemaker 2013年

1
如果安全性不是问题(我是说您信任两台计算机之间的网络),nc也可以选择。在服务器上:tar -zc source | nc -l 1313在客户端上:nc SERVER_IP 1313 | tar -zx
茨维托米尔·迪米特洛夫

12

您可能想购买更多的磁盘空间,但是如果您不愿意,则可以...

用管道传送压缩包,而不是下载它。

newserver#  ssh olduser@oldserver "cat /path/to/tarball" | tar xf -

或者如果您没有对旧服务器的SSH访问权限

newserver# wget -O - http://oldserver/path/to/tarball | tar xf -

使用Dennis所说的rsync

要有创造力。我没有提到其他解决方案。


--numeric-owner在制作tar包之前,您可能必须使用option来确保所有者和组不会更改。ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F. Hauri

--numeric-owner如果两台计算机之间的UID / GID方案不同,@ F.Hauri 可能会(可能很严重)产生意想不到的后果。这在内部环境中通常不是问题,但是从“共享主机”迁移到“专用虚拟”可能会引起问题。如果使用tarcpio甚至使用,您应该期望必须在新服务器上修复所有权rsync
voretaq7年

是的,您是对的,但是,不了解这种选择也可能具有(相同)边界效果。最重要的是:知道您在做什么,... rtfm ;-)
F. Hauri

...一些有趣的方式(过滤器)使用(或不)有创意nc或者opensslsedgpguuencodemail(小心),enscript+ lpr+ [禽流运营商(fr.wikipedia.org/wiki/IP_over_Avian_Carriers + scan+ ocr。 ..但是还有更多...
F. Hauri 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.