Transfiera un archivo tar de 30 GB de un servidor remoto a otro, restringido por espacio en disco

8

Tengo un archivo tar "Moodle" de 38 GB que necesito transferir desde el servidor anterior (alojamiento compartido), que podemos llamar "Servidor A" al nuevo servidor (Virtual dedicado) o "Servidor B". Estoy con Mediatemple si eso ayuda.

Sin embargo, ya he marcado el directorio y he usado wget para transferirlo al servidor B a través de SSH; sin embargo, es un paquete insignificante de 100 GB y tengo una capacidad de disco del 96%, lo que significa que no puedo descomprimir el archivo en el servidor B. ¿Hay alguna forma de transferir este gran archivo del Servidor A al Servidor B, preservando los permisos y con la menor posibilidad de corrupción de archivos, lo que no me hará alcanzar el límite del disco?

Si bien he pasado bastante tiempo haciendo esto hasta ahora, estaría dispuesto a abandonar mi plan original si alguien puede ofrecer una mejor idea, ¡y estaría muy agradecido!

alexbass
fuente

Respuestas:

21

No alquitrán Úselo rsync -avpara preservar los permisos mientras transfiere los archivos. Aunque como el alquitrán, esto no preserva el contexto selinux. Sin embargo, no es que lo considere tan importante.

Dennis Kaarsemaker
fuente
1
Hola Dennis, gracias por la respuesta. ¿Supongo que no podrías elaborar un poco sobre cómo usar el comando rsync? ¿O proporcionar un artículo útil? Gracias de nuevo
alexbass
1
Un artículo útil sería la página de manual de rsync :) Pero en pocas palabras: si tiene acceso ssh desde serverb a servera, ejecute esto en serverb:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker
1
Si no está seguro de cómo usar los comandos fundamentales en el sistema operativo que está utilizando, comience con la función de ayuda. En las máquinas Unix, que es a menudo algo como man rsyncorsync --help
mfinni
1
-aimplica -r(y muchas más banderas que la gente olvidaba hasta que -ase agregó como "estas son las banderas útiles para hacer copias de seguridad")
Dennis Kaarsemaker
1
Si la seguridad no es un problema (quiero decir que confía en la red entre las dos máquinas) nc también es una opción. En el servidor: tar -zc source | nc -l 1313 En el cliente: nc SERVER_IP 1313 | tar -zx
Dimitrov
12

Probablemente desee comprar más espacio en disco, pero suponiendo que no lo haga, podría ...

canaliza el tarball en lugar de descargarlo.

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

o si no tiene acceso SSH a su antiguo servidor

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

o use rsync como dijo Dennis .

Ser creativo. Hay otras soluciones que no estoy mencionando.

voretaq7
fuente
Es posible que tenga que usar la --numeric-owneropción antes de hacer tarball para asegurarse de que el propietario y los grupos no cambien. ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F. Hauri
@ F.Hauri --numeric-ownerpuede tener consecuencias no deseadas (potencialmente graves) si el esquema UID / GID difiere entre las dos máquinas. Esto generalmente no es un problema en el entorno interno, pero pasar de "hosting compartido" a "virtual dedicado" podría causar problemas. Usted debe esperar a que la propiedad de fijar en el nuevo servidor si se utiliza tar, cpioy posiblemente incluso rsync.
voretaq7
Sí, tiene razón, pero no conocer este tipo de opción también podría tener el mismo efecto de borde. Lo mejor de todo: saber lo que estás haciendo y ... rtfm ;-)
F. Hauri
... de alguna manera interesante (filtros) para utilizar (o no) a ser creativos : nc¿O openssl, sed, gpg, uuencodey mail(con cuidado;), enscript+ lpr+ [] (transportistas aviar fr.wikipedia.org/wiki/IP_over_Avian_Carriers ) + scan+ ocr. .. Pero aún hay más ...
F. Hauri