¿Cómo puedo copiar archivos/directorios muy grandes de un host a otro "sin conexión"?

¿Cómo puedo copiar archivos/directorios muy grandes de un host a otro "sin conexión"?

Tengo la intención de conseguir un servidor vps muy pronto para algunos de los sitios que administro con un uso intensivo de recursos. Vivo en un país donde la velocidad de Internet de 1Mb/s es un lujo y la electricidad constante e ininterrumpida, un mito.

Esto es lo que estoy tratando de lograr:

  • Cómo copiar los archivos y directorios del servidor de origen al servidor de destino a través de SSH/SCP.
  • Cómo seguir copiando los archivos entre los servidores incluso si mi Internet se desconecta o se corta el suministro eléctrico.
  • Cómo hacer que los archivos sigan copiándose entre ambos servidores si cierro la ventana de mi Terminal.

Soy consciente de que estoy copiando a través de scp, pero no parece que siga funcionando cuando me desconecto.

Respuesta1

rsync -azvP source_directory user@remote:remote_directory

debería permitirle copiar archivos entre dos computadoras mientras guarda el progreso en caso de interrupciones.

Aquí también hay una explicación de cada bandera.http://explainshell.com/explain?cmd=rsync+-azvP

Si desea permitir que esto se ejecute en un servidor sin estar conectado, puede pasar el comando anterior al nohupcomando. También puede ejecutar esto en una sesión tmux que le permitirá monitorear el progreso (o reiniciar el comando) adjuntando la sesión cuando inicie sesión en su máquina.

Puede iniciar una sesión tmux escribiendo tmuxen su servidor. Luego puede ejecutar el comando rsync y desconectarse de la sesión tmux escribiendo CTRL+by luego d. Cerrar sesión no afectará el procedimiento de copia. Cuando vuelva a iniciar sesión, podrá escribir tmux attachy podrá ver el progreso de la operación de copia.

¡Espero que esto ayude! Déjame saber si puedo aclarar algo.

Respuesta2

Le sugiero encarecidamente que eche un vistazo al uso del comando rsync. El comando rsync es útil porque puede reanudar las transferencias fácilmente. Rsync funciona de forma predeterminada a través de un transporte SSH, simplemente necesita el binario rsync en el cliente y el servidor.

Rsync detectará lo que ya se ha transmitido y solo transmitirá los archivos y partes de los archivos que no se han transferido.

Respuesta3

Creo que esto debería resolver el problema:

nohup scp -r big-folder remote-machine:/home/user/ &

Este comando inicia el proceso de copia y continuará copiando después de cerrar sesión.

información relacionada