GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo usar el comando rsync para copiar datos localmente y a través de SSH

Copiar archivos de una ubicación a otra es una tarea bastante básica y se puede lograr fácilmente usando el comando cp. Sin embargo, a veces, hay que hacer un poco más. Aquí es donde entra el comando rsync, especialmente cuando está transfiriendo archivos más grandes. Rsync (Remote Sync) es una herramienta de línea de comandos basada en Linux que se puede usar para sincronizar y copiar archivos entre servidores locales y remotos. Permite la sincronización de archivos entre dos directorios en la misma computadora, entre los directorios en dos computadoras diferentes en la misma red, entre dos directorios en el sistema remoto.

La principal ventaja de rsync es que, en lugar de copiar a ciegas todo el contenido, analiza y transfiere solo las diferencias entre el origen y el destino, posiblemente ahorrando recursos y ancho de banda del sistema. Algunas otras ventajas de rsync son las siguientes:

  • Comprime los archivos antes de transferirlos
  • Puede ver la barra de progreso mientras transfiere datos
  • El proceso de copia se puede pausar y reanudar más tarde
  • Permite la transferencia a través de una conexión SSH

En este artículo, explicaremos cómo usar rsync para copiar datos en Linux. Usaremos Debian 10 para describir el procedimiento mencionado en este artículo.

Instalación de Rsync

Rsync está instalado en la mayoría de los sistemas operativos Linux de forma predeterminada. Sin embargo, si no está instalado, puede instalarlo siguiendo los pasos a continuación:

Inicie la aplicación Terminal en su sistema yendo a Actividades en la esquina superior izquierda de su escritorio Debian. Luego, en la barra de búsqueda, escriba terminal . Cuando aparezca el icono de Terminal, haz clic en él para iniciarlo.

Ahora ejecute el siguiente comando en la Terminal para instalar la utilidad rsync:

$ apt install rsync

Uso de Rsync

Cada comando rsync comienza con rsync seguido de una opción en la que puede especificar varios parámetros. Rsync proporciona una serie de opciones que le dan el control para dar forma a las especificaciones de transferencia. Luego hay un origen y un destino que depende de si son una máquina remota o local.

La sintaxis básica de rsync es:

$ rsync [option] [source] [destination]

Algunas de las opciones generales utilizadas con los comandos rsync:

  1. -v :detallado
  2. -a :modo de archivo, permite copiar archivos de forma recursiva y conserva enlaces simbólicos, permisos de archivos, propiedad de usuarios y grupos y marcas de tiempo
  3. -z :comprime datos
  4. -h :legible por humanos, genera números en un formato legible por humanos
  5. –max-size= SIZE, transfiere archivos con el TAMAÑO mínimo especificado
  6. –min-size= SIZE, transfiere archivos con el TAMAÑO máximo especificado

Ahora explicaremos algunos ejemplos del uso de rsync con estas opciones.

Copiar archivos y directorios al servidor local

Copiar archivos localmente

Puede copiar archivos únicos o múltiples desde un directorio de origen al directorio de destino en la misma máquina. El ejemplo sería copiar todos los .jpg archivos de ~/Descargas directorio al ~/Documentos directorio usando el siguiente comando:

$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

Después de ejecutar el comando anterior, todo .jpg archivos en el directorio de origen /home/tin/Downloads se copiará en el directorio de destino /home/tin/Documents .

En el ejemplo anterior, hemos usado opciones como -z para compresión, -v para salida detallada y -h para salida legible por humanos.

Copiar directorios localmente

Similar a los archivos, también puede copiar la carpeta completa y los archivos contenidos en un directorio usando el comando rsync. Un ejemplo sería copiar todos los archivos de ~/Downloads directorio al ~/Documentos directorio usando el siguiente comando:

$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents

Copiar archivos a un servidor remoto

Puede copiar archivos únicos o múltiples desde un directorio de origen al directorio de destino en una máquina remota. Por ejemplo, para copiar los archivos de una máquina local a una remota, use la siguiente sintaxis de comando:

$ rsync [options] [local path] [user]@[remote server]:[remote path]

Copiar archivos según el tamaño máximo

También puede especificar el tamaño máximo del archivo que se puede copiar desde el origen al destino utilizando rsync. Para hacerlo, use la siguiente sintaxis de comando:

$ rsync --max-size=”” [source] [destination]

Un ejemplo sería copiar archivos con un tamaño máximo de 4000K desde la fuente ~/Descargas al destino ~/Documentos directorio. En este caso, los archivos con un tamaño superior a 4000k no se copiarán en el destino.

$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

Copiar archivos según el tamaño mínimo

Del mismo modo, también puede especificar el tamaño mínimo que se puede copiar desde el origen al destino utilizando rsync. Para hacerlo, use la siguiente sintaxis de comando:

$ rsync --min-size=”” [source] [destination]

Un ejemplo de esto sería copiar archivos con un tamaño máximo de 2M desde la fuente ~/Descargas al destino ~/Documentos directorio. Los archivos con un tamaño inferior a 2M no se copiarán con rsync.

$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

Ver progreso

También puede ver el progreso mientras copia archivos usando rsync. Añadir –progreso marca siguiendo el comando rsync como se muestra a continuación:

$ rsync --progress [source] [destination]

Un ejemplo sería ver el progreso al copiar un archivo desde la fuente ~/Descargas al destino ~/Documentos directorio:

$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

Excluir archivos

También puede excluir ciertos archivos mientras los copia del origen al destino usando rsync. Un ejemplo sería excluir todos los archivos .pdf al copiar archivos desde la fuente ~/Descargas al destino ~/Documentos directorio.

rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents

Al ingresar el siguiente comando, todos los archivos se copiarán de origen a destino excepto .pdf archivos.

¡Eso es todo! Hemos explicado el uso básico de la utilidad rsync para copiar archivos entre diferentes directorios de forma local y remota. También hemos explicado algunas opciones de rync comunes y útiles. Hay tantas opciones además de estas que puede usar para controlar todos los aspectos del comportamiento de la transferencia. Para usar esas opciones, consulte las páginas man de rsync.


Debian
  1. Cómo descargar y cargar archivos a través de SSH

  2. El comando rsync de Linux:cómo usarlo

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

  4. ¿Cómo copiar archivos en Linux y Unix? Ejemplos de comandos de 10 cp

  5. ¿Usar un dispositivo a través de SSH?

Cómo hacer una copia de seguridad de archivos y carpetas en Debian 10

Cómo instalar y usar Okteta para archivos de datos RAW en Linux

Cómo usar Docker Cp para copiar archivos entre el host y los contenedores

Cómo usar Rsync y SSH en una canalización GitLab CI dockerizada

Cómo instalar y usar MongoDB en Debian 11

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