GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo copiar una gran cantidad de archivos rápidamente entre dos servidores

Solución 1:

Recomendaría alquitrán. Cuando los árboles de archivos ya son similares, rsync funciona muy bien. Sin embargo, dado que rsync realizará varias pasadas de análisis en cada archivo y luego copiará los cambios, es mucho más lento que tar para la copia inicial. Este comando probablemente hará lo que quieras. Copiará los archivos entre las máquinas y conservará los permisos y las propiedades de los usuarios/grupos.

tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'

Según el comentario de Mackintosh a continuación, este es el comando que usaría para rsync

rsync -avW -e ssh /path/to/dir/ remote_server:/path/to/remotedir

Solución 2:

Disco duro externo y entrega por mensajería el mismo día.

Solución 3:

Yo usaría rsync.

Si los tiene exportados a través de HTTP con listas de directorios disponibles, también puede usar wget y el argumento --mirror.

Ya está viendo que HTTP es más rápido que SCP porque SCP está encriptando todo (y por lo tanto creando cuellos de botella en la CPU). HTTP y rsync se moverán más rápido porque no están encriptando.

Aquí hay algunos documentos sobre cómo configurar rsync en Ubuntu:https://help.ubuntu.com/community/rsync

Esos documentos hablan sobre la tunelización de rsync a través de SSH, pero si solo está moviendo datos en una LAN privada, no necesita SSH. (Supongo que está en una LAN privada. Si obtiene 9-10 MB/seg a través de Internet, ¡quiero saber qué tipo de conexiones tiene!)

Aquí hay algunos otros documentos muy básicos que le permitirán configurar un servidor rsync relativamente inseguro (sin dependencia de SSH):http://transamrit.net/docs/rsync/

Solución 4:

Sin mucha discusión, use netcat, la navaja suiza de la red. Sin sobrecarga de protocolo, está copiando directamente al socket de red.Ejemplo

srv1$ tar cfv - *mp3 | nc -w1 remote.server.net 4321

srv2$ nc -l -p 4321 |tar xfv -

Solución 5:

Con muchos archivos, si usa rsync, intentaría obtener la versión 3 o superior en ambos extremos . La razón es que una versión menor enumerará todos los archivos antes de que comience la transferencia. La nueva característica se llama recursión incremental .

Ahora se utiliza un nuevo algoritmo de recursividad incremental cuando rsync se comunica con otra versión 3.x. Esto inicia la transferencia más rápidamente (antes de que se hayan encontrado todos los archivos) y requiere mucha menos memoria. Consulte la opción --recursive en la página de manual para conocer algunas restricciones.


Linux
  1. Cómo copiar archivos de forma segura entre hosts Linux utilizando SCP y SFTP

  2. Cómo transferir archivos entre servidores en Linux usando SCP y FTP

  3. ¿Cómo usar el comando Rsync en Linux?

  4. Cómo copiar directorios recursivamente usando rsync mientras se excluyen archivos específicos

  5. Sincronización bidireccional en tiempo real de un gran árbol de archivos entre dos servidores Linux distantes

Cómo mover una gran cantidad de archivos en Linux

Cómo copiar una gran cantidad de archivos en Linux

Cómo Rsync archivos entre dos servidores Linux automáticamente

¿Cómo silenciar selectivamente Rsync?

Cómo copiar archivos entre el host y el contenedor Docker

Cómo usar Rsync para copiar/sincronizar archivos entre servidores