Imagina este escenario. Estás copiando algunos archivos grandes de un sistema a otro a través de SSH usando scp
dominio. De repente, se va la energía, por lo que se interrumpe la conexión de red y el proceso de copia se termina a mitad de camino. ¿Qué harías? ¿Simplemente reiniciar el proceso de copia una vez que la energía vuelva a estar en línea? Sí, funciona. Sin embargo, el scp
El comando no tiene la opción de reanudar, por lo que simplemente comenzará a copiar los archivos desde el principio y sobrescribirá los archivos existentes. Esta es una tarea un poco molesta y que consume mucho tiempo. Aquí es donde Rsync ¡La utilidad viene en ayuda! Podemos reanudar fácilmente archivos transferidos parcialmente a través de SSH usando Rsync. Le ayuda a reanudar el proceso de copia o descarga interrumpido donde lo dejó.
¿Qué es Rsync?
Para aquellos que se preguntan, Rsync es una utilidad de copia de archivos rápida y versátil que se puede usar para copiar y transferir archivos o carpetas hacia y desde sistemas remotos y locales. Ofrece una gran cantidad de opciones que controlan todos los aspectos de su comportamiento y permiten una especificación muy flexible del conjunto de archivos a copiar. Es famoso por su algoritmo de transferencia delta , que reduce la cantidad de datos enviados a través de la red al enviar solo las diferencias entre los archivos de origen y los archivos existentes en el destino. Rsync se usa ampliamente para copias de seguridad y duplicación y como un comando de copia mejorado para el uso diario.
Al igual que scp
, rsync también puede copiar archivos a través de SSH. En caso de que desee descargar o transferir archivos y carpetas de gran tamaño a través de SSH, le recomiendo que utilice la utilidad rsync como se describe a continuación.
Instalar Rsync en Linux
Por favor, que la utilidad rsync debe instalarse en ambos lados (es decir, sistemas remotos y locales) para reanudar los archivos transferidos parcialmente. Rsync está disponible en los repositorios oficiales de la mayoría de las distribuciones de Linux, por lo que puede instalarlo usando el administrador de paquetes predeterminado de la distribución.
En Alpine Linux , podemos instalar Rsync como se muestra a continuación:
$ sudo apk add rsync
En Arch Linux y sus variantes, instale Rsync usando el comando:
$ sudo pacman -S rsync
En Debian , Ubuntu , Linux Mint :
$ sudo apt-get install rsync
En Fedora , RHEL , Cent OS , AlmaLinux y Rocky Linux :
$ sudo dnf install rsync
En SUSE/openSUSE :
$ sudo zypper install rsync
Reanudar archivos parcialmente transferidos usando Rsync
Ahora veamos un ejemplo. Voy a copiar el archivo ISO de Ubuntu desde mi sistema local a un sistema remoto usando el siguiente comando:
$ scp ubuntu.iso [email protected]:/home/sk/
Aquí,
- sk es el nombre de usuario de mi sistema remoto
192.168.225.22 es la dirección IP de la máquina remota./home/sk/
es el destino remoto.
Ahora, terminé el proceso de copia a la fuerza presionando CTRL+C
.
Salida de muestra:
[email protected]'s password: ubuntu-16.04-desktop-amd64.iso 26% 372MB 26.2MB/s 00:39 ETA^c
Como puede ver en el resultado anterior, terminé el proceso de copia cuando alcanzó el 33 %.
Si vuelvo a ejecutar el comando anterior, simplemente sobrescribirá el archivo existente. En otras palabras, el proceso de copia no se reanudará donde lo dejé.
Para reanudar el proceso de copia para copiar el archivo ISO parcialmente transferido, use rsync comando como se muestra a continuación.
$ rsync -P -rsh=ssh ubuntu.iso [email protected]:/home/sk/
Salida de muestra:
[email protected]'s password: sending incremental file list ubuntu.iso 834.00M 100% 14.81MB/s 0:00:56 (xfr#1, to-chk=0/1)
¿Ver? Ahora, el proceso de copia se reanuda donde lo dejamos antes.
También puede usar "--partial
" en lugar del parámetro "-P
" como abajo.
$ rsync --partial -rsh=ssh ubuntu.iso [email protected]:/home/sk/
Aquí, los parámetros "--partial
" o "-P
" le dice al comando rsync que conserve el archivo parcialmente descargado y reanude el proceso.
Verifique si el archivo realmente se copió o no en el sistema remoto usando el comando:
$ ssh [email protected] ls -lh [email protected]'s password: total 835M -rw-rw-r-- 1 sk sk 834M Jul 26 2019 ubuntu.iso
Como puede ver en el resultado anterior, el archivo Ubuntu.iso se copia en el sistema remoto y su tamaño es de 835 MB.
Alternativamente, también podemos usar los siguientes comandos para reanudar archivos parcialmente transferidos a través de SSH.
$ rsync -avP ubuntu.iso [email protected]:/home/sk/
O,
$ rsync -av --partial ubuntu.iso [email protected]:/home/sk/
Eso es todo. Ahora sabe cómo reanudar los archivos cancelados, interrumpidos y parcialmente descargados usando el comando rsync. Como puedes ver, no es tan difícil. Si rsync está instalado en ambos sistemas, podemos reanudar fácilmente el proceso de copia de archivos a través de SSH como se describe anteriormente.
Lectura sugerida:
- Ejemplos de comandos Rsync de Linux para principiantes
- Cómo reanudar un archivo descargado parcialmente usando Wget
- Ejecutar comandos en sistemas Linux remotos a través de SSH