Cómo utilizar Rsync para realizar copias de seguridad de archivos locales y remotos

27 feb 2021 4 min di lettura
Cómo utilizar Rsync para realizar copias de seguridad de archivos locales y remotos
Indice dei contenuti

Introducción

Rsync significa "sincronización remota", es una herramienta de sincronización de archivos y carpetas local y remota. Utiliza un algoritmo que minimiza la cantidad de datos copiados moviendo solo las partes de los archivos que se han modificado. En esta guía, cubriremos el uso básico de esta poderosa utilidad.

Usaremos un VPS con Ubuntu 18.04 LTS en los ejemplos, pero se puede usar cualquier distribución moderna de Linux.

Rsync es una herramienta de sincronización habilitada en red muy flexible. Debido a su ubicuidad en los sistemas Linux y Unix y su popularidad como herramienta de scripting del sistema, se incluye con la mayoría de las distribuciones de Linux de forma predeterminada.

Si su intención es utilizar Rsync en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación.

Para conectarse al servidor como root, escriba este comando:

ssh root@IP_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

Ahora está conectado a su servidor.

Cómo utilizar Rsync

La sintaxis básica de rsync es muy simple y funciona de manera similar a ssh, scp y cp. Crearemos dos directorios de prueba y algunos archivos de prueba con los siguientes comandos, Vámonos a la casa:

cd ~

Cree una carpeta llamada dir1:

mkdir dir1

Cree otra carpeta llamada dir2:

mkdir dir2

Cree 100 archivos en la carpeta dir1;

touch dir1/file{1..100}

Para ver todos los archivos creados:

ls dir1

Para sincronizar el contenido de dir1 a dir2 en el mismo sistema, escriba:

rsync -r dir1/dir2

La opción -r significa recursivo, que es necesario para la sincronización de directorios. También podríamos usar la bandera -a en su lugar:

rsync -a dir1/dir2

La opción -a es un indicador que representa " archivo " y sincroniza y retiene de forma recursiva enlaces simbólicos, archivos especiales y de dispositivo, tiempos de modificación, grupo, propietario y permisos. Se usa más comúnmente que -r.

Es posible que haya notado que hay una barra inclinada ( / ) al final del primer argumento en los comandos anteriores: rsync -a dir1 ** /** dir2 Esto es necesario para significar " el contenido de dir1 ".

La alternativa, sin la barra al final, colocaría dir1, incluido el directorio, dentro de dir2.

Siempre verifique las banderas antes de ejecutar un comando rsync. Rsync proporciona un método de prueba pasando las opciones -n o --dry-run. El indicador -v (para verbose) también es útil para ver la salida del comando.

Cómo usar Rsync para sincronizar con un sistema remoto

La sincronización con un sistema remoto es fácil si tiene acceso SSH a la máquina remota y rsync instalado en ambos servidores.

Para transferir un archivo o carpeta desde una computadora local a un servidor remoto, use la siguiente sintaxis:

rsync -avzh /path/computer/locale/esempio.txt nome_utente@indirizzo_remoto:/path/server/remoto/

Esto se denomina operación de "inserción " porque envía un directorio del sistema local a un sistema remoto.

La operación opuesta es " tirar ". Se utiliza para sincronizar un directorio remoto con el sistema local:

rsync -avzh nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

Si el servidor remoto usa un puerto ssh no estándar, agregue el siguiente parámetro: ssh -p PORT y el indicador -e. Entonces, para hacer una copia de seguridad de un servidor remoto al local, con un puerto no estándar:

rsync -avzhe "ssh -p PORTA" nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

( NO recomendado por razones de seguridad) Para ingresar la contraseña de acceso ssh en el mismo comando, sin tener que escribirla más tarde, instale el siguiente software:

sudo apt-get install sshpass

Entonces:

sshpass -p "PASSWORD" rsync -avzhe "ssh -p PORTA" nome_utente@indirizzo_remoto:/path/server/remoto//path/computer/locale

Opciones útiles para Rsync

Rsync ofrece muchas opciones para cambiar el comportamiento predeterminado de la utilidad. Si está transfiriendo archivos que aún no se han comprimido, como archivos de texto, puede agregar compresión con la opción -z:

rsync -az sorgente destinazione

La bandera -P es muy útil. Combine los indicadores --progress y --partial. El primero de ellos proporciona una barra de progreso para las transferencias y el segundo le permite reanudar las transferencias interrumpidas:

rsync -azP sorgente destinazione

Podemos actualizar la hora de modificación en algunos archivos y ver que rsync vuelve a copiar inteligentemente solo los archivos modificados:

rsync -azP sorgente destinazione

Para mantener realmente sincronizados dos directorios, los archivos deben eliminarse del directorio de destino si se eliminan del origen. De forma predeterminada, rsync no elimina nada del directorio de destino. Podemos cambiar este comportamiento con la opción --delete. Antes de usar esta opción, use la opción --dry-run y pruebe para evitar la pérdida de datos:

rsync -a --delete sorgente destinazione

Si desea excluir ciertos archivos o directorios ubicados dentro de un directorio que está sincronizando, puede hacerlo especificándolos en una lista separada por comas siguiendo la opción --exclude =:

rsync -a --exclude=file_da_escludere sorgente destinazione

Si hemos especificado un patrón para excluir, podemos anular esa exclusión para archivos que coincidan con un patrón diferente usando la opción --include =.

rsync -a --exclude=file_da_escludere --include=file_da_includere sorgente destinazione

Finalmente, la opción rsync --backup se puede utilizar para archivar copias de seguridad de archivos importantes. Se usa junto con la opción --backup-dir, que especifica el directorio donde se almacenarán los archivos de respaldo.

rsync -a --delete --backup --backup-dir=/path/to/backups /path/to/source destinazione

Algunas banderas útiles:

  • -a es para el archivo, que contiene propiedades, permisos, etc.
  • -e es necesario cuando se especifica un protocolo a utilizar, por ejemplo, ssh.
  • -v es para verbose, para que pueda ver lo que está pasando. (Opcional)
  • -h es legible por humanos, por lo que la velocidad de transferencia y el tamaño del archivo son más fáciles de leer. (Opcional)
  • -W es solo para copiar archivos completos, sin algoritmo delta-xfer que debería reducir la carga de la CPU.
  • --progress para que pueda ver el progreso de archivos grandes. (Opcional)

Conclusión

Rsync puede simplificar la transferencia de archivos a través de conexiones de red y agregar robustez a la sincronización del directorio local. La flexibilidad de rsync lo convierte en una buena opción para muchas operaciones diferentes a nivel de archivo. El dominio de rsync le permite diseñar operaciones de respaldo complejas y obtener un control preciso sobre qué se transfiere y cómo.

En este tutorial hemos visto cómo usar Rsync.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.