Categorías: Trabajo

Respaldo automático a disco USB

Si tenemos algun server o nuestro desktop de vez en cuando viene bien respaldarlo en un disco externo.

Una opcion facil y barata ( si no te dan $$$ para hacerlo como deberías) es usar un disco USB y que el respaldo se ejecute al conectarlo al puerto USB/Firewire.

Si bien no voy a explicar cómo encriptar los datos, esto sería deseable!!

Que necesitamos: GNU/Linux ( Debian/Ubuntu), Rsync, disco USB/FireWire

1: Setear udev

# dmesg
[ 1164.319347] scsi 8:0:0:0: Direct-Access TOSHIBA External USB 3.0 5438 PQ: 0 ANSI: 6
[ 1164.319746] sd 8:0:0:0: Attached scsi generic sg3 type 0
[ 1164.321741] sd 8:0:0:0: [sdc] 1953525164 512-byte logical blocks: (1.00 TB/931 GiB)
[ 1164.323140] sd 8:0:0:0: [sdc] Write Protect is off
[ 1164.323145] sd 8:0:0:0: [sdc] Mode Sense: 23 00 00 00
[ 1164.324014] sd 8:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1164.333037] sdc: sdc1
[ 1164.366188] sd 8:0:0:0: [sdc] Attached SCSI disk

Vemos que el disco que conectamos, ahora vamos a obtener la data para configurar el udev

# udevadm info -a -p $(udevadm info -q path -n /dev/sdc)
KERNELS=="8:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{model}=="External USB 3.0"
ATTRS{state}=="running"
ATTRS{vendor}=="TOSHIBA "

De todo los datos que nos larga, nos interesan esos 3 para que udev reconozca el disco al conectarlo, se pueden usar otros como el idVendor.

Ahora creamos un archivo en /etc/udev/rules.d con el nombre 50-backup2usb.rules, las reglas de usuario deben ser empiezan por 50.

# UDEV rules para respaldo automatico al conectar disco.
#   udevinfo -a -p $(udevinfo -q path -n /dev/sda)
KERNEL=="sd?1", ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="TOSHIBA", ATTRS{model}=="External USB 3.0", RUN+="/path/script/respaldo2usb.sh %k"
4/11/16 cambio el driver luego de un update
KERNEL=="sd?1", ACTION=="add", SUBSYSTEMS=="usb", DRIVER=="usb", ATTRS{vendor}=="TOSHIBA", ATTRS{model}=="External USB 3.0", RUN+="/path/script/respaldo2usb.sh %k"

Esto funciona así:

Cuando el kernel encuentra un disco sd?1 ( unica particion de tu disco USB) y está conectado en el subsystem SCSI y la marca es TOSHIBA y el modelo es «External USB 3.0»

entonces corre el script backup2usb.sh, el parámetro %k le pasa al script que el disco/partición es sdc1 ( si lo corres a mano al script debes agregarlo al final)

2: Bajar script y corregir paths

El script está disponible en: https://github.com/cristianmenghi/usbbackup

3: Testearlo

Espero que te sirva como a mi.

 

cristian

Compartir
Publicado por
cristian

Entradas recientes

El eterno retorno de los pozos salteños

Una crónica sobre el arte de tapar huecos que se destapan solos En Salto, hay…

3 meses hace

Hablando sobre IA

Hace unos días, me invitaron a hablar en el stream de PorcoNegro, PorcoTV sobre que…

10 meses hace

Bloquear anuncios en todos tus dispositivos

En el vasto mundo digital de hoy, los anuncios no solo son molestos, sino que…

2 años hace

Quitar Ads del celular

Valido para ANDROID/iOS Para quitar los ADs del celular sin rootear el cel (android), instalar…

5 años hace

Las desprolijidades de mi mutualista

con la seguridad de la información. Si, así como lo leen, en muchos sentidos mi…

6 años hace