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!

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.


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.