Cómo hacer una copia de seguridad automática de archivos en un medio USB cuando está conectado


Una copia de seguridad es la última defensa contra la pérdida de datos y ofrece un medio para restaurar los datos originales. Puede utilizar un medio extraíble como un disco duro externo o un disco flash USB o una carpeta de red compartida, o un host remoto para hacer una copia de seguridad de sus datos. Es muy fácil (e igualmente esencial) hacer una copia de seguridad automática de sus archivos importantes sin que tenga que acordarse de hacerlo.

En este artículo, aprenderemos cómo hacer una copia de seguridad automática de los datos en un medio extraíble después de conectarlo a su máquina Linux. Lo probaremos con un disco externo. Esta es una guía básica para comenzar a usar udev para soluciones de la vida real.

Para el propósito de este artículo, necesitamos un sistema Linux moderno con:

  1. administrador de sistemas y servicios systemd
  2. administrador de dispositivos udev
  3. herramienta de copia de seguridad rsync

Cómo configurar reglas Udev para medios extraíbles

Udev es un administrador de dispositivos que le permite definir reglas que pueden, entre otras, activar la ejecución de un programa o script cuando un dispositivo se agrega o se elimina de un sistema en ejecución, como parte del manejo de eventos del dispositivo. Podemos usar esta función para ejecutar un script de respaldo después de agregar un medio extraíble al sistema en ejecución.

Antes de configurar la regla real para el manejo de eventos del dispositivo, debemos proporcionar a udev algunos atributos de los medios extraíbles que se utilizarán para la copia de seguridad. Conecte el disco externo al sistema en ejecución y ejecute el siguiente comando lsusb para identificar su proveedor y su ID de producto.

Para el propósito de la prueba, usaremos un disco duro externo de 1TB como se muestra.

$ lsusb

De la salida del comando anterior, nuestro ID de proveedor de dispositivo es 125f , que especificaremos en las reglas de udev como se explica a continuación.

Primero, elimine los medios conectados del sistema y cree un nuevo archivo de reglas udev llamado 10.autobackup.rules en el directorio /etc/udev/rules.d/.

El 10 en el nombre del archivo especifica el orden de ejecución de las reglas. El orden en el que se analizan las reglas es importante; siempre debe crear reglas personalizadas para analizarlas antes que las predeterminadas.

$ sudo vim /etc/udev/rules.d/10.autobackup.rules

Luego agregue la siguiente regla en él:

SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/autobackup.sh"

Expliquemos brevemente la regla anterior:

  • "u003du003d" : es un operador para comparar la igualdad.
  • "+ u003d" : es un operador para agregar el valor a una clave que contiene una lista de entradas.
  • SUBSYSTEM: coincide con el subsistema del dispositivo de eventos.
  • ACCIÓN: coincide con el nombre de la acción del evento.
  • ATTRS {idVendor}: coincide con los valores de atributo sysfs del dispositivo del evento, que es el ID del proveedor del dispositivo.
  • EJECUTAR: especifica un programa o secuencia de comandos para ejecutar como parte del manejo de eventos.

Guarde el archivo y ciérrelo.

Crear una secuencia de comandos de copia de seguridad automática

Ahora cree un script de copia de seguridad automática que hará una copia de seguridad automática de los archivos en un USB extraíble cuando se conecte al sistema.

$ sudo vim /bin/autobackup.sh 

Ahora copie y pegue el siguiente script, asegúrese de reemplazar los valores de BACKUP_SOURCE, BACKUP_DEVICE y MOUNT_POINT en el script.

#!/usr/bin/bash
BACKUP_SOURCE="/home/admin/important"
BACKUP_DEVICE="/dev/external1"
MOUNT_POINT="/mnt/external"


#check if mount point directory exists, if not create it
if [ ! -d “MOUNT_POINT” ] ; then 
	/bin/mkdir  “$MOUNT_POINT”; 
fi

/bin/mount  -t  auto  “$BACKUP_DEVICE”  “$MOUNT_POINT”

#run a differential backup of files
/usr/bin/rsync -auz "$MOUNT_POINT" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE"
exit

Luego haga que el script sea ejecutable con el siguiente comando.

$ sudo chmod +x /bin/autobackup.sh

A continuación, vuelva a cargar las reglas de udev con el siguiente comando.

$ udevadm control --reload

La próxima vez que conecte su disco duro externo o cualquier dispositivo que haya configurado al sistema, todos sus documentos de la ubicación especificada deben tener una copia de seguridad automática en él.

Nota: La eficacia con la que esto funciona puede verse influenciada por el sistema de archivos en su medio extraíble y las reglas de udev que escriba, especialmente la captura de los atributos del dispositivo.

Para obtener más información, consulte las páginas de manual de udev, mount y rsync.

$ man udev
$ man mount 
$ man rsync 

También puede leer los siguientes artículos relacionados con la copia de seguridad de Linux.

  1. rdiff-backup: una herramienta de copia de seguridad incremental remota para Linux
  2. Tomb: una herramienta de cifrado de archivos y copia de seguridad personal para Linux
  3. System Tar and Restore: una secuencia de comandos de copia de seguridad versátil para Linux
  4. Cómo crear copias de seguridad con uso eficiente del ancho de banda utilizando duplicidad en Linux
  5. Rsnapshot: una herramienta de copia de seguridad local/remota para Linux
  6. Cómo sincronizar dos servidores web/sitios web Apache mediante Rsync

¡Eso es todo por ahora! En este artículo, hemos explicado cómo hacer una copia de seguridad automática de los datos en un medio extraíble después de conectarlo a su máquina Linux. Nos gustaría saber de usted a través del formulario de comentarios a continuación.