Tutoriales

Cómo hacer una copia de seguridad de archivos y directorios con Rsync en Linux

¿Está buscando una solución confiable y sólida para realizar copias de seguridad de sus datos en Linux? Rsync te tengo cubierto! Esta guía lo guiará a través de los pasos para realizar copias de seguridad de archivos y directorios usando Rsync en Linux.

1. Introducción

Si nunca realiza una copia de seguridad de sus datos, ya que todo funciona bien, diría que está equivocado.

Pregúntele a todos los usuarios de Linux, compartirán el dolor de no hacer una copia de seguridad de su sistema / datos. Como novato, cometí este error una vez y aprendí la importancia de las copias de seguridad.

Hay muchas herramientas de respaldo disponibles para plataformas Linux y Unix. Rsync (Remote Sync) se considera una de las herramientas de copia de seguridad más utilizadas y confiables.

2. Realice una copia de seguridad de archivos y directorios mediante Rsync en Linux

Con Rsync podemos

  1. asegurar todo el sistema,
  2. o hacer una copia de seguridad de archivos y directorios individuales.

Para el primer tipo, copiamos todo el sistema de archivos de Linux a un dispositivo externo o recurso compartido de red. Puede utilizar esta copia para restaurar el dispositivo a su estado original en caso de una falla del sistema.

El segundo tipo es hacer una copia de seguridad o copiar solo los archivos y directorios seleccionados. Por ejemplo, puede copiar los archivos de configuración importantes o todos ellos $HOME Directorio y excluir todo lo demás.

Ya te hemos mostrado cómo hacerlo. Realice una copia de seguridad de todo el sistema Linux con Rsync. Esta guía se centra en directorios y archivos de copia de seguridad selectivos que utilizan Rsync en Linux.

2.1. Seleccionar medio de almacenamiento

En el primer paso, decida dónde desea guardar sus datos. ¡Es muy importante!

Puede hacer una copia de seguridad de sus datos en un disco duro externo, almacenamiento en la nube o almacenamiento conectado a la red (NAS). Una opción fácil y económica es utilizar un disco duro externo.

Si su computadora tiene dos unidades separadas, puede usar una de las unidades para hacer una copia de seguridad de sus datos porque no fallarán las dos al mismo tiempo.

Nota:

Si se toma en serio la copia de seguridad, no coloque la copia de seguridad en la misma unidad. Utilice siempre una unidad externa, una unidad secundaria, un recurso compartido de red y almacenamiento en la nube, etc.

Para fines de demostración, utilizo un 1 TB disco duro externo en este manual.

2.3. Copia de seguridad de archivos con Rsync

La sintaxis general de Rsync para copiar datos de una ubicación a otra es:

rsync [OPTION…] SRC… [DEST]

Aquí,

  • OPTION – la lista de opciones de rsync
  • SRC – Archivo / directorio de origen
  • DEST – Apuntar

Aquí hay un comando rsync simple para hacer una copia de seguridad o copiar archivos de una ubicación a otra en el sistema local.

$ rsync src_file dest_file

Ejemplos:

$ rsync -auv ostechnix.txt ostechnix-bak.txt

Aquí,

  • -a – Modo de modo de archivo (manteniendo las propiedades del archivo y los enlaces simbólicos)
  • -u – Omitir archivos más nuevos en el lado de recepción.
  • -v – Modo detallado

El comando anterior guarda el archivo de respaldo ostechnix-bak.txt Archivo en el directorio actual. También puede especificar un directorio de destino diferente de la siguiente manera:

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

Si no especifica el nombre del archivo de destino, Rsync usa el mismo nombre de archivo de origen que el archivo de destino.

El almacenamiento de archivos de copia de seguridad en el mismo disco duro no es realmente una copia de seguridad. Debe guardar los datos de la copia de seguridad en una unidad externa o en un recurso compartido de red, o al menos en una partición diferente.

Por ejemplo, el siguiente comando hará una copia de seguridad del archivo en mi disco externo:

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsync ofrece muchas opciones avanzadas. Eche un vistazo al siguiente ejemplo:

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

Este comando transfiere archivos en modo de archivo (para preservar atributos) y en modo comprimido (zip) con barras de progreso detalladas y legibles por humanos.

2.4. Copia de seguridad de directorios con Rsync

En lugar de hacer una copia de seguridad de un solo archivo, puede poner todos los archivos en un directorio y hacer una copia de seguridad de ese directorio con Rsync. Esto es útil al duplicar y sincronizar datos.

En este manual, le mostraré cómo hacer una copia de seguridad del directorio HOME con Rsync.

2.4.1. Haga una copia de seguridad del directorio HOME con Rsync

Rsync es una herramienta para copiar archivos de forma incremental. Significado: solo sincroniza datos nuevos o modificados en el directorio de origen (es decir, /home en nuestro caso) en lugar de sincronizar todos los datos desde cero.

Para mi. para asegurar $HOME Directorio en mi disco externo, utilicé el siguiente comando:

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Analicemos el comando anterior y veamos qué hace cada opción.

  • La bandera -a es la combinación de muchas posibilidades. Esta bandera se encarga de la copia recursiva y conserva los atributos como permiso de archivo / directorio, propietario, etc.
  • La bandera -v habilita el modo detallado, que imprime más registros en la terminal cuando ejecuta el comando rsync.
  • La bandera -x restringe rsync para sincronizar datos dentro de los límites del sistema de archivos. Si ha montado un sistema de archivos en su directorio de inicio, se omitirá durante el proceso de sincronización.
  • La bandera -P es la combinación de dos banderas. Muestra el progreso de cada sincronización y conserva los archivos transferidos parcialmente.
  • La bandera --delete elimina todos los directorios y archivos que no están disponibles en el origen pero que están disponibles en el destino. Tienes que ser muy cuidadoso mientras usa la bandera.
  • La bandera --exclude-from=File acepta un archivo como argumento. Este archivo contiene la lista de archivos y directorios que rsync ignorará.

Creé un archivo llamado ignore_list.txt que contiene los archivos y directorios que se excluirán.

En el comando anterior es esa parte --exclude-from=/home/karthick/Work/Backup/ignore_list.txt define la lista de exclusión.

Aquí está el contenido de la ignore_list.txt Archivo:

Lista excluida

La lista de elementos que se excluirán de la ilustración anterior es mi elección personal y puede variar para usted. Cambie el parámetro según su entorno.

Las dos últimas partes del comando rsync anterior son las ubicaciones de origen y destino. En mi caso, la fuente es mi directorio $ HOME y el destino es mi disco externo. Reemplace el origen y el destino según corresponda a su entorno.

Aviso: Si desea conocer el punto de montaje de su unidad externa, ejecute el lsblk Mando.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

Antes de ejecutar el rsync Comando por primera vez, siempre se recomienda a un Prueba de funcionamiento. La ejecución de prueba simula qué cambios se realizarán. Utilice el mismo comando pero con el -n Bandera.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Salida de muestra:

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

Si todo sale como se esperaba, elimine el -n resalte y ejecute el comando para hacer una copia de seguridad de sus datos.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Dependiendo del tamaño, la primera ejecución lleva algún tiempo.

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2. Crear script de respaldo

Un comando largo puede ser difícil de recordar. Para evitar escribir durante mucho tiempo rsync Comando en la terminal, puede crear un script BASH simple y llamarlo cuando quiera para iniciar la copia de seguridad.

Crea un script llamado home_dir_backup.sh:

$ nano home_dir_backup.sh

Agrega las siguientes líneas:

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Agregue, elimine o cambie las opciones de rsync según sus necesidades. También cambie las rutas de origen y destino con las suyas. Guarde y cierre el archivo.

Haga que el script sea ejecutable:

$ chmod +x <path-to-home_dir_backup.sh>

Ahora ejecute el script en cualquier momento para comenzar a hacer una copia de seguridad del directorio $ HOME:

$ ./path-to-home_dir_backup.sh

Utilice un nombre de secuencia de comandos más corto para que sea más fácil de recordar.

También puedes crear uno Softlink para el archivo de script en /usr/bin o todos los directorios específicos del usuario que se encuentran en el $PATH Variable.

2.4.3. Crea un alias

Otra forma de evitar escribir comandos largos es usar Alias.

Edita tu ~/.bashrc Archiva y agrega la siguiente línea al final:

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

fuente bashrc Archivo para aplicar los cambios inmediatamente:

$ source ~/.bashrc

Ahora simplemente ejecute el siguiente comando para hacer una copia de seguridad del directorio $ HOME:

$ backup

Depende de usted decidir qué utilizar. Puede crear un alias o un script y ejecutar rsync activando el script. En mi caso, creé un script y luego creé un alias para ese script.

3. Programar copia de seguridad

Puedes usar cron Programador para programar trabajos de respaldo para que se ejecuten a una hora específica en un día específico.

Edite los trabajos cron del usuario actual con el comando

$ crontab -e

Defina su programa de respaldo. Digamos, por ejemplo, ejecutar una copia de seguridad todos los días a las 3 a.m., use la siguiente línea:

0 3 * * * <rsync-command-to-execute>

Dependiendo de sus necesidades, puede programar trabajos diarios, semanales o mensuales.

Si es nuevo en los trabajos cron, hemos reunido una lista de ejemplos útiles de trabajos cron para programar tareas en Linux. Para obtener más información sobre el uso de cron, consulte la guía a continuación.

4. Conclusión

En esta guía, analizamos cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux. Como puede ver, copiar archivos y directorios con Rsync es muy fácil.

También le mostramos cómo usar el comando rsync para hacer una copia de seguridad de su directorio de inicio y algunas de las formas de ejecutarlo y programarlo.

Este método también se puede utilizar en cualquier directorio o estructura de archivos en Linux para hacer una copia de seguridad de los datos. Si cree que tiene una mejor solución de respaldo, nos encantaría saber de usted a través de la sección de comentarios a continuación.

LEER  # 137 conexión Linux con Luis Fajardo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba