GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Rsync:20 ejemplos útiles en Linux

Introducción

Rsync, o Remote Sync, es una herramienta de línea de comandos gratuita que le permite transferir archivos y directorios a destinos locales y remotos. Rsync se utiliza para duplicar, realizar copias de seguridad o migrar datos a otros servidores.

Esta herramienta es rápida y eficiente, copia solo los cambios de la fuente y ofrece opciones de personalización.

Siga este tutorial para aprender a usar rsync con 20 ejemplos de comandos para cubrir la mayoría de los casos de uso en Linux.

Requisitos previos

  • Usuario con sudo o raíz privilegios
  • Acceso a una terminal/línea de comando
  • Acceso SSH para ejemplos de rsync remotos

Sintaxis del comando Rsync

La sintaxis para rsync el comando cambia según el uso de la herramienta. Cubriremos todos los escenarios en los siguientes ejemplos. La sintaxis de Rsync en su forma más básica se ve así:

rsync options SOURCE DESTINATION

Las transferencias remotas de datos requieren que especifique la dirección de un host, pero hablaremos de eso más adelante.

Opciones de Rsync

La herramienta rsync viene con muchas opciones. Puede ingresar rsync en tu terminal y obtén todos los detalles. Enumeraremos algunas de las opciones de rsync más comunes.

Estos incluyen:

Ejemplos de comandos Rsync

Rsync es una herramienta de sincronización versátil que puede personalizar para adaptarse a su uso específico. En esta guía, utilizaremos el archivo (-a ) y detallado (-v ) opciones cuando sea necesario.

Consulte los ejemplos de rsync a continuación para cubrir la mayoría del uso de rsync.

1. Copie un solo archivo localmente

Para copiar un archivo a otro directorio en una máquina local, escriba la ruta completa del archivo de origen, seguida del destino de destino.

Por ejemplo:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/

El comando transfiere el sample.txt archivo al rsync directorio. Si el directorio de destino no existe, agregue una barra al final y rsync lo creará, como es el caso en nuestro ejemplo.

Si desea copiar un archivo del directorio de trabajo actual, puede ingresar el nombre del archivo, no la ruta completa.

2. Copie varios archivos localmente

Para copiar varios archivos con rsync, agregue rutas completas de los archivos de origen:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

Debe usar este método para una pequeña cantidad de archivos. Si la lista es más grande, puede consultar --exclude opción.

3. Copie un directorio y todos los subdirectorios localmente (Copie archivos y directorios de forma recursiva)

Para copiar un directorio y su contenido a otra ubicación en su máquina, use -a o -r opción. Usamos el archivo opción :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

El ejemplo anterior muestra cómo copiar Linux directorio al rsync directorio. Tenga en cuenta que no usamos la barra inclinada final después de Linux . Por lo tanto, la herramienta rsync creó el Linux directorio y su contenido dentro del rsync directorio.

4. Copie un archivo o directorio de una máquina local a una remota

Para copiar el directorio /home/test/Desktop/Linux a /home/prueba/Escritorio/rsync en una máquina remota, debe especificar la dirección IP del destino.

Agregue la dirección IP y el destino después del directorio de origen. Recuerda poner dos puntos (: ) después de la dirección IP del host remoto, sin espacios antes del destino.

El comando se ve así:

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Introduzca la contraseña del usuario actual para continuar. Si desea utilizar otra cuenta para la conexión remota, especifíquela antes de la dirección IP:

rsync -a /home/test/Desktop/Linux [email protected]:/home/test/Desktop/rsync

Para copiar un solo archivo a un host remoto, especifique la ruta completa del archivo y el destino.

Por ejemplo:

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. Copie varios archivos o directorios de una máquina local a una remota

Similar a la copia de datos localmente, enumere múltiples archivos o múltiples rutas de directorio que desea copiar a un servidor remoto. Siga la misma sintaxis que con la copia de un solo archivo o directorio.

Por ejemplo:

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync

6. Especifique el protocolo rsync para transferencias remotas

La herramienta rsync se puede instruir con -e opción utilizar un protocolo específico para la transferencia de archivos. Para usar Rsync sobre SSH para transferir archivos de forma remota, agregue -e ssh al rsync comando.

Por ejemplo, para transferir sample.txt desde su escritorio al escritorio de una máquina remota:

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. Copie un archivo o directorio de una máquina remota a una local

Rsync admite la transferencia de archivos desde un servidor remoto a su máquina local.

Para extraer un directorio de un servidor, especifique su dirección IP antes de la fuente.

Por ejemplo:

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop

Este comando copió el DirM directorio de 192.168.56.100 a /home/test/Desktop en un servidor local.

Para copiar un archivo específico desde un host remoto, ingrese la ruta completa del archivo de origen y el destino en su máquina local. Por ejemplo:

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. Copie varios archivos o directorios de una máquina local a una remota

Para transferir varios archivos o varios directorios desde un servidor remoto, enumere las rutas usando corchetes después de la dirección IP del servidor. Separe las rutas con una coma.

Por ejemplo:

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync

Lo mismo ocurre con los archivos. Enumere tantos archivos como necesite dentro de las llaves.

9. Mostrar el progreso de rsync durante la transferencia de datos

Al realizar una copia de seguridad de datos de gran tamaño, es posible que desee ver el progreso de la transferencia.

Agregue el --progress marca al rsync comando para ver la cantidad de datos transferidos, la velocidad de transferencia y el tiempo restante.

Por ejemplo, para hacer una copia de seguridad de Dir1 a un servidor remoto y mostrar el progreso, ingrese:

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

10. Eliminar un archivo de origen o directorio inexistente del destino

Usa el --delete opción para mantener el origen y el destino sincronizados.

Esta opción le dice a rsync que elimine cualquier archivo o directorio en el destino si la fuente no lo tiene.

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

11. Eliminar archivos de origen después de la transferencia

En algunos escenarios, es posible que desee eliminar los archivos de origen después de la transferencia. Por ejemplo, puede mover una copia de seguridad semanal a un nuevo servidor. Una vez que se realiza la transferencia, ya no necesita los archivos de origen en el servidor anterior.

En ese caso, use el --remove-source-files marcar para eliminar el archivo fuente que especificó.

Por ejemplo, este comando transfiere el archivo de respaldo weekly.zip y luego lo elimina de la fuente:

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Ejecución en seco de Rsync

Rsync es una poderosa herramienta de sincronización. Dado que esta herramienta le permite copiar y eliminar datos, le recomendamos que haga una prueba primero para comprobar si rsync hace lo que pretendía.

La opción de ejecución en seco es especialmente útil cuando desea eliminar archivos. Para hacer un ensayo, use el --dry-run y siga la sintaxis normal de rsync.

Por ejemplo:

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

La salida se ve igual que cuando realmente está sincronizando archivos. Sin embargo, esta vez los datos no se sincronizarán. Para confirmar que se realizó la prueba y no la transferencia real, la terminal muestra (FUNCIONAMIENTO EN SECO) en la parte inferior.

13. Establecer el tamaño máximo de archivo para la transferencia

Para determinar el tamaño máximo de archivo que transferirá rsync, use --max-size=add_size .

Por ejemplo, para transferir archivos que no superen los 500 KB, use este comando:

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. Establecer el tamaño mínimo de archivo para la transferencia

Usa --min-size=add_size con rsync cuando no desee transferir archivos más pequeños que el tamaño que especifique. Esta opción es útil, por ejemplo, cuando desea omitir archivos pequeños de registro o miniaturas.

Para omitir cualquier archivo de menos de 10 KB, ejecute este comando:

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15. Establecer límite de ancho de banda de rsync

Si desea determinar el límite de ancho de banda durante la transferencia de datos entre máquinas, use --bwlimit=KB/s .

Esta opción es útil cuando no desea obstruir el rendimiento de su red.

Para establecer la velocidad de transferencia máxima en 50 KB/s, ingrese:

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

También usamos el --progress opción para demostrar el uso de --bwlimit .

16. Copiar tipo de archivo específico

Puede usar rsync para copiar solo un tipo de archivo específico. Para ello, utilice el asterisco (* ) en lugar del nombre del archivo y agregue la extensión.

Por ejemplo, para copiar solo archivos .txt, ingrese:

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

Este rsync El comando transfiere todos los archivos de texto de Documentos directorio al rsync directorio en su escritorio.

17. Copie la estructura del directorio pero omita los archivos

Rsync le permite transferir solo la estructura del directorio si no necesita los archivos en otra ubicación.

Para hacerlo, agregue -f"+ */" -f"- *" antes del directorio de origen.

Por ejemplo, para copiar la estructura del Linux directorio a Documentos , introduce:

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents

18. Agregar sello de fecha al nombre del directorio

Puede agregar fácilmente una fecha a un nombre de directorio si desea poner un sello de fecha a sus transferencias.

Añadir $(date +%Y-%m-%d) al nombre del directorio de destino que desea crear. Esta opción es útil cuando desea realizar un seguimiento de cuándo se realizaron las transferencias sin abrir las propiedades del directorio.

Por ejemplo:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)

19. No copiar el archivo de origen si se modifica el mismo archivo de destino

Si mantiene sincronizados dos directorios, rsync no copia un archivo si el mismo existe en el destino.

A veces puede suceder que modifique un archivo en el destino y no quiera permitir que rsync lo sobrescriba.

Para evitar sobrescribir los archivos de destino modificados, utilice -u opción.

Por ejemplo:

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. Mostrar la diferencia entre los archivos de origen y destino

Cuando comience a transferir datos, puede usar el -i marque con rsync para comprobar si hay una diferencia entre el origen y el destino.

Por ejemplo:

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync

El ejemplo anterior muestra el sample2rs.txt falta el archivo en el destino.

Las letras posibles en la salida son:

  • f significa archivo
  • d muestra que el archivo de destino está en duda
  • t muestra que la marca de tiempo ha cambiado
  • s muestra que el tamaño ha cambiado

Linux
  1. Comando cp en Linux:7 ejemplos prácticos

  2. Ejemplos prácticos del comando rsync en Linux

  3. Comando cp de linux

  4. 7 ejemplos de comandos Linux df

  5. Ejemplos de comandos sa en Linux

17 ejemplos útiles de comandos rsync (sincronización remota) en Linux

Comando Rsync en Linux con ejemplos

Ejemplos de comandos Rsync de Linux para principiantes

15 ejemplos prácticos del comando Rsync en Linux

Ejemplos de comandos rsync de Linux

Ejemplos de comandos id en Linux

    -r Permite sincronizar datos de forma recursiva pero no conserva la propiedad de usuarios y grupos, permisos, marcas de tiempo o enlaces simbólicos.
    -a El modo de archivo se comporta como el modo recursivo pero mantiene todos los permisos de archivos, enlaces simbólicos, propiedad de archivos, etc.
    -z Se utiliza para comprimir datos durante las transferencias para ahorrar espacio.
    -b Realiza una copia de seguridad durante la sincronización de datos.
    -h Muestra los números en la salida en un formato legible por humanos.
    -n Hace un ensayo. Se utiliza para realizar pruebas antes de que se produzca la sincronización real.
    -e Instruye al rsync para usar el protocolo SSH para transferencias remotas.
    -progress Muestra el progreso de la transferencia durante la sincronización.
    -v Salida detallada. Muestra los detalles de la transferencia.
    -q Se utiliza para suprimir la salida del comando y las opciones de rsync.