Con la ayuda de la utilidad de línea de comandos gratuita conocida como Rsync, a veces conocida como Remote Sync, puedes enviar archivos y carpetas tanto a lugares locales como a lugares distantes. La migración de datos a diferentes servidores, el archivado y la replicación son posibles con Rsync. Con posibilidades de personalización, esta utilidad es rápida y efectiva, replicando sólo las modificaciones desde el origen. Dentro de esta guía de hoy, estaremos cubriendo algunos ejemplos para discutir el uso del comando rsync para mover archivos y carpetas localmente así como remotamente.
Guía del comando Rsync
Instalar la utilidad Rsync
Antes de pasar a la implementación, necesitamos asegurarnos de que la utilidad «rsync» ya está instalada y lista para su uso. Para ello, hemos utilizado la instrucción de instalación «apt» en el área de consulta de la aplicación de la consola. La ejecución de esta instrucción pide la contraseña de la cuenta de usuario actualmente conectada. Después de esto, el sistema instalará la utilidad rsync en unos momentos. La salida muestra que la utilidad rsync ya está instalada en nuestro sistema y lista para su uso.
Antes de utilizar la consulta rsync en el shell, echaremos un vistazo a su guía de ayuda mediante el uso de la opción «-help» en el área de consulta. La guía «help» puede permitirnos ver su versión instalada, junto con sus capacidades mencionadas en la salida como se presenta en la imagen.
Desplázate un poco hacia abajo en su salida mostrada, y se te presentará el uso de la utilidad rsync. Muestra la sintaxis a utilizar para esta instrucción en el shell y explica todas sus opciones en la sección «Opciones» según la salida mostrada a continuación.
Copiar un solo archivo local
Digamos que tienes un archivo llamado «fall.sh» dentro del directorio de trabajo actual de tu sistema, es decir, el directorio de inicio. Hemos probado la instrucción «ls» para listar todos los archivos y carpetas del directorio actual de nuestro sistema Linux y obtuvimos la salida que se muestra a continuación, es decir, el archivo fall.sh también está listado.
Hemos probado la instrucción rsync con los derechos sudo y la opción «-a» para copiar el archivo «fall.sh» del directorio de trabajo actual (home/saeedraza) a la carpeta «/tmp» de nuestro sistema Linux en formato de archivo. El comando no produce nada. Entonces, hemos probado la instrucción «cd» junto con la ruta «/tmp» para movernos dentro de la carpeta «tmp» y probamos la instrucción de lista «ls» para mostrar los datos de la carpeta «tmp». Se mostró que el archivo fall.sh se ha movido con éxito de una carpeta a otra carpeta trabajando localmente.
Entonces, hemos probado la misma instrucción para mover el archivo fall.sh en la carpeta «tmp» con un nuevo nombre, «new.sh». Después de moverse a la carpeta «tmp» con la instrucción «cd» y listar el contenido de la carpeta «tmp», podemos ver que la carpeta tiene un nuevo archivo «new.sh», es decir, un archivo «fall.sh».
Copiar múltiples archivos local
Vamos a utilizar la instrucción rsync para copiar múltiples archivos de una carpeta local a otra. Así, hemos probado la instrucción «ls» para averiguar el contenido actual de un directorio de trabajo actual. Encontramos que tiene dos archivos bash, es decir, fall.sh y new.sh. Asegúrese de eliminar los archivos antiguos copiados de la carpeta «tmp» para copiar con éxito varios archivos en la misma carpeta.
Así, hemos probado la misma instrucción rsync con derechos sudo y la opción «-v» para el formato verboso de los archivos. Después, hemos añadido la ruta a ambos archivos para copiar ambos archivos desde el directorio de trabajo actual «home» a la nueva carpeta «tmp». Se requiere la contraseña «sudo» y se copiaron con éxito ambos archivos en la ruta de destino, es decir, «/tmp». Mostró el número de bytes de datos entregados, recibidos, el tamaño total y la velocidad de entrega. Después de esto, probamos la instrucción «cd» para movernos dentro de la carpeta «tmp» y listamos sus datos. Ambos archivos se presentan en la carpeta «tmp» de este sistema según el resultado obtenido.
Copiar un directorio local
Podemos mover un directorio completo de una carpeta principal a otra. Así, hemos creado un nuevo directorio llamado «move» dentro de nuestra carpeta principal actual mediante el uso de la instrucción «mkdir».
Ahora, hemos estado utilizando la declaración del comando rsync en el shell de Ubuntu con los derechos sudo y la opción «-a» para hacer el archivo de una carpeta «move» en la carpeta «/tmp» de nuestro sistema Ubuntu. Para ello, es necesario añadir la ruta tanto de origen como de destino. En la carpeta tmp aparece la carpeta «move» listada en ella.
También podemos mover la carpeta a su carpeta de destino con un nuevo nombre como hicimos con los archivos. Así, hemos probado la misma instrucción «rsync» y hemos movido la carpeta «move» a la carpeta «tmp» con un nuevo nombre, «new». La instrucción «ls» muestra el éxito del comando «rsync».
Copiar un directorio con subdirectorios localmente
En esta ilustración, verás el uso de rsync para copiar la carpeta y sus subcarpetas localmente. Hemos creado una nueva carpeta, «test», con la instrucción «mkdir». Creé tres subcarpetas dentro de las carpetas de «prueba» recién creadas.
He utilizado la instrucción «rsync» con la opción «-av» para mover la carpeta «test» a una carpeta «nueva». La salida ha mostrado que la carpeta «test» junto con sus subcarpetas se han copiado.
Moviéndonos dentro de la carpeta «nueva», hemos comprobado que el comando rsync ha tenido éxito.
Copiar un directorio de forma remota
Para mover archivos del origen al destino de forma remota, necesitamos la dirección ip de un destino concreto. El comando que se muestra a continuación está copiando la carpeta «nueva» a la otra máquina virtual con una dirección ip específica.
Para copiar un archivo de una máquina remota a una máquina local, es necesario intercambiar la posición de las rutas en el comando rsync como se presenta.
Conclusiones sobre rsync
Hemos visto la instalación y el uso del comando rsync en Ubuntu. Después de esto, hemos discutido el uso de la instrucción rsync dentro del shell de comandos para copiar un archivo de una carpeta a otra localmente, copiar múltiples archivos, copiar una carpeta junto con sus subcarpetas, y el uso de rsync para copiar archivos de local a remoto y eliminar a la plataforma local.