Cómo usar RSYNC para copiar archivos

Cómo usar RSYNC para copiar archivos

RSYNC es una herramienta de línea de comandos en Linux que se utiliza para copiar archivos desde una ubicación de origen a una ubicación de destino. Puede copiar archivos, directorios y todo el sistema de archivos y mantener sincronizar los archivos entre diferentes directorios. Hace más que simplemente copiar los archivos. Reduce la cantidad de datos enviados a través de la red enviando solo los archivos que son nuevos o actualizados. Es por eso que se considera una gran utilidad para la copia y la copia de seguridad de los archivos. RSYNC también admite la copia de archivos a un sistema remoto a través de SSH.

En este artículo, explicaremos cómo usar RSYNC para copiar archivos con algunos ejemplos prácticos. También explicaremos el uso de RSYNC en la copia de un solo archivo, múltiples archivos y directorio a sistemas locales y remotos. Cubriremos cómo usar RSYNC para:

  • Copiar archivo/directorio dentro del sistema local
  • Copiar archivo/directorio de local al sistema remoto
  • Copiar archivo/directorio del sistema remoto al local

Hemos explicado los comandos y el procedimiento mencionados en este artículo sobre un Ubuntu 20.04 LTS. Necesitará el terminal de línea de comandos para copiar archivos utilizando RSYNC. Para abrir la aplicación de terminal de línea de comando, use el atajo de teclado Ctrl+Alt+T.

Instalación de RSYNC

RSYNC viene preinstalado en Ubuntu 20.04 LTS. Sin embargo, si se elimina accidentalmente del sistema, puede instalarlo de la siguiente manera:

$ sudo apt instalación rsync

Estas son algunas de las opciones de uso común que se pueden usar con RSYNC:

-A: modo de archivo
-V: Muestra detalles del proceso de copia
-P: muestra la barra de progreso
-R: copia los datos de recursiva
-z: comprime datos
-P: suprimir la salida

Copiar archivos y directorios localmente

La sintaxis general de RSYNC es:

$ rsync [opción] [fuente] [destino]

Copiar un solo archivo local

Si desea copiar un archivo de una ubicación a otra dentro de su sistema, puede hacerlo escribiendo rsync seguido del nombre del archivo de origen y el directorio de destino.

Por ejemplo, para copiar un solo archivo "archivo1.txt ”Desde la ubicación actual que es directorio de inicio para ~/Documents Directory, el comando sería:

$ rsync/home/tin/file1.txt/home/tin/documentos

Nota: en lugar de “/home/tin/file1.txt ", también podemos escribir" file1 ", ya que actualmente estamos trabajando en el directorio de inicio. Además, podemos usar ~/documentos en lugar de mencionar la ruta completa como "Home/Tin/Documents".

Copiar múltiples archivos localmente

Si desea copiar varios archivos a la vez de una ubicación a otra dentro de su sistema, puede hacerlo escribiendo rsync seguido del nombre de los archivos de origen y el directorio de destino.

Por ejemplo, para copiar los archivos "File2.txt "y" archivo3.txt ”Desde el directorio de inicio al directorio ~/Documents, el comando sería:

$ rsync/home/tin/file2.txt/home/tin/file3.txt/home/tin/documentos

Para copiar todos los archivos con la misma extensión, puede usar el símbolo de asterisco (*) en lugar de especificar individualmente los nombres de los archivos. Por ejemplo, para copiar todos los archivos del directorio de inicio que termina con ".Extensión Zip ”al directorio ~/Documents, usaremos:

$ rsync/home/tin/*.Zip ~/Documentos

Copiar directorios localmente

Si desea copiar un directorio con su subdirectorio y todos los contenidos de una ubicación a otro dentro de su sistema, puede hacerlo como escribiendo rsync seguido del directorio de origen y destino.

Por ejemplo, para copiar el directorio de "muestra" al directorio "prueba/" dentro del directorio de inicio, el comando sería:

$ rsync -av/home/tin/sample/home/tin/test

Nota: Especificar "/" después de que el directorio de origen solo copie el contenido del directorio. Si no especificamos el "/" después del directorio de origen, el directorio de origen también se copiará en el directorio de destino.

Al igual que en la siguiente salida, puede ver que nuestro directorio de origen "muestra" también se copia en el directorio de destino (ya que hemos usado "muestra" en lugar de "muestra/" como directorio de origen).

RSYNC admite la transferencia incremental como puede ver en la salida anterior que solo transfiere los archivos que son nuevos o actualizados.

Copiar archivos basados ​​en el tamaño máximo

Mientras copiamos, también podemos especificar el tamaño máximo de los archivos que se pueden copiar con la opción "-Max-Size". Por ejemplo, para copiar los archivos de no más de 2000k desde ~/descargas al directorio ~/Documents, el comando sería:

$ rsync -a --max -size = 2000k/home/tin/downloads/*/home/tin/documents

Este comando copiará todos los archivos de ~/descargas a ~/Documenty Directory, excepto los mayores de 2000k.

Copiar archivos basados ​​en un tamaño mínimo

Del mismo modo, también podemos especificar el tamaño mínimo de los archivos que se pueden copiar con la opción "-Min-Size". Por ejemplo, para copiar los archivos no menores que 5m desde ~/descargas al directorio ~/Documents, el comando sería:

$ rsync -a -min -size = 5m/home/tin/downloads//home/tin/documents

Este comando copiará todos los archivos de ~/descargas al directorio ~/Documents, excepto los menos de 5m.

Excluir archivos

Mientras copia archivos de un directorio a otro, puede excluir algunos archivos utilizando la opción "-exclude" seguida del nombre del archivo o la extensión del tipo de archivo.

Por ejemplo, para excluir todo el .Archivos zip Al copiar archivos de ~/descargas a ~/Documents Directory, el comando sería:

$ rsync -a --exclude = "*.zip "/home/tin/downloads//home/tin/documentos

Copiar archivos y directorios de forma remota

Con RSYNC, puede copiar un solo archivo, múltiples archivos y directorios a un sistema remoto. Para copiar archivos y directorios de forma remota, necesitará:

  • RSYNC instalado en un sistema local y remoto
  • Acceso ssh al sistema remoto
  • Contraseña de usuario remoto

Antes de copiar archivos con RSYNC, asegúrese de poder acceder al sistema remoto a través de SSH:

$ SSH Remote_user@Remote_IP


La sintaxis general para copiar archivos y directorios a un sistema remoto utilizando RSYNC:

$ rsync [opción] [fuente] [remotouser@remotsip: destino]

Por ejemplo, para copiar un solo archivo "archivo.txt ”de ~/descargas al directorio remoto ~/documentos, el comando sería:

$ rsync -v ~/downloads/file1.txt [email protected]: ~/documentos

Del mismo modo, para copiar el directorio "~/descargas/archivos" en un sistema local con su subdirectorio y todos los contenidos al directorio "~/descargas/muestras" en el sistema remoto:

$ rsync -rv ~/descargas/archivos [email protected]: ~/descargas/muestras

También puede copiar los archivos y directorios de la máquina remota a su máquina local. Por ejemplo, para copiar un "archivo2.txt ”desde el sistema remoto hasta el escritorio del sistema local:

$ rsync -v [email protected]: ~/descargas/file2.txt ~/escritorio/

Del mismo modo, para copiar un directorio del sistema remoto al sistema local

$ rsync -rv [email protected]: ~/descargas/muestra ~/escritorio/prueba

También puede usar todas las opciones como -max -size, -min -size, -exclude y otras mientras copia archivos hacia/desde el sistema remoto.

RSYNC es una gran herramienta para copiar archivos de origen a destino, ya sea a nivel local o remotamente. Incluye un gran conjunto de opciones que le brindan flexibilidad y control mientras se transfiere archivos a/desde el sistema remoto.