Transferir um arquivo tar de 30 GB de um servidor remoto para outro - restringido pelo espaço em disco

8

Eu tenho um arquivo tar "Moodle" de 38 GB que preciso transferir do servidor antigo (hospedagem compartilhada), que podemos chamar de "Servidor A" para o novo servidor (virtual dedicado) ou "Servidor B". Estou com Mediatemple, se isso ajudar.

Eu já tarballed o diretório e usei o wget para transferi-lo para o servidor B via SSH, no entanto - é um pacote insignificante de 100 GB e estou com 96% de capacidade de disco - o que significa que não posso desatar o arquivo no servidor B! Existe alguma maneira de transferir esse enorme arquivo do Servidor A para o Servidor B, preservando as permissões e com a menor chance possível de corrupção de arquivos, o que não me fará atingir o limite de disco?

Embora tenha passado bastante tempo fazendo isso até agora, estaria disposto a abandonar meu plano original se alguém pudesse oferecer uma idéia melhor - e ficaria muito grato!

alexbass
fonte

Respostas:

21

Não tar. Use rsync -avpara preservar as permissões ao transferir os arquivos. Embora como o tar, isso não preserva o contexto do selinux. Não que eu considerasse isso importante.

Dennis Kaarsemaker
fonte
1
Olá Dennis, obrigado pela resposta. Eu não suponho que você poderia elaborar um pouco sobre como usar o comando rsync? Ou fornecer um artigo útil? Mais uma vez obrigado
alexbass
1
Um artigo útil seria o rsync manpage :) Mas em poucas palavras: se você tem acesso ssh a partir serverb para servera, executar isso em serverb:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker
1
Se você não tiver certeza de como usar comandos fundamentais no sistema operacional que está usando, comece com o recurso de ajuda. Em máquinas Unix, que muitas vezes é algo como man rsyncoursync --help
mfinni
1
-aimplica -r(e muitos mais bandeiras povo esquecia até -afoi adicionado como "estas são as bandeiras útil para fazer backups")
Dennis Kaarsemaker
1
Se a segurança não for um problema (quero dizer, você confia na rede entre as duas máquinas), nc também é uma opção. No servidor: tar -zc source | nc -l 1313 No cliente: nc SERVER_IP 1313 | tar -zx
Tsvetomir Dimitrov
12

Você provavelmente deseja comprar mais espaço em disco, mas supondo que não, você pode ...

canalize o tarball ao invés de baixá-lo.

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

ou se você não tiver acesso SSH ao seu servidor antigo

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

ou use o rsync como Dennis disse .

Seja criativo. Existem outras soluções que não estou mencionando.

voretaq7
fonte
Você pode ter que usar a --numeric-owneropção antes de fazer o tarball para garantir que o proprietário e os grupos não mudem. ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F. Hauri
@ F.Hauri --numeric-ownerpode ter conseqüências não intencionais (potencialmente graves) se o esquema UID / GID diferir entre as duas máquinas. Isso geralmente não é um problema no ambiente interno, mas passar de "hospedagem compartilhada" para "virtual dedicado" pode causar problemas. Você deve esperar para ter a propriedade correção no novo servidor se estiver usando tar, cpioe, possivelmente, até mesmo rsync.
voretaq7
Sim, você está certo, mas não conhecer esse tipo de opção também pode ter o mesmo efeito de borda. O melhor de tudo: sabe o que está fazendo e ... rtfm ;-)
F. Hauri
... alguma forma interessante (filtros) para usar (ou não) para ser criativo : ncOu openssl, sed, gpg, uuencodee mail(com cuidado;), enscript+ lpr+ [gripe transportadoras] ( fr.wikipedia.org/wiki/IP_over_Avian_Carriers ) + scan+ ocr. .. Mas há ainda mais ...
F. Hauri 30/07