Seguridad en la Raspberry - Episodio VII: Copias de seguridad

Raspberry Pi con disco de respaldo y símbolo de copia de seguridad

Hacer una copia de seguridad es siempre una buena práctica que deberíamos realizar a menudo en todos nuestros dispositivos, no solo en la Raspberry. En este artículo veremos cómo hacer una copia de seguridad de la tarjeta de manera local, remota y restaurarla en caso de desastre.

Copia de seguridad local

Para realizar una imagen de la tarjeta microSD de manera local, hay que apagar la Raspberry. Nos conectamos mediante SSH y ejecutamos:

sudo shutdown -h now

Introducimos la tarjeta en el equipo que debe realizar la copia y averiguamos dónde se ha montado:

sudo fdisk -l

Hay que desmontar las dos particiones para poder hacer la copia de seguridad:

sudo umount /dev/sdX1 /dev/sdX2

Y ejecutamos:

sudo dd bs=4M status=progress if=/dev/sdd of=/media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).dd

Verificación de integridad

Para comprobar que la copia de seguridad es correcta ejecutaremos el siguiente comando:

sha1sum /media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).dd

El resultado, en este caso, es:

b9275fcaeba732f99788654a4d80d8636dcfce9f /media/datos1/backups/rpi/webserver/backup_250817.dd

Hacemos la misma operación pero para la tarjeta microSD:

sudo sha1sum /dev/sdd

Con el resultado:

b9275fcaeba732f99788654a4d80d8636dcfce9f /dev/sdd

Si los dos resultados no son iguales, significa que tenemos algún error y hay que repetir la copia. Si ambas cadenas son idénticas, ¡felicidades! Solo nos quedaría comprimir el fichero resultante del backup:

tar -czvf backup_$(date +%Y%m%d).tar.gz /media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).dd

Expulsamos la tarjeta:

sudo eject /dev/sdd

Y la introducimos de nuevo en la Raspberry.

Restaurar la copia de seguridad

Una vez introducida la tarjeta en el equipo que se encargará de restaurarla, introduciendo un único comando, descomprimiremos y restauraremos la tarjeta:

tar xzOf /media/datos1/backups/rpi/webserver/backup_20170825.tar.gz | sudo dd of=/dev/sdc bs=1M status=progress; sync

Realizar una copia de seguridad remota

Para evitar tener que parar la Raspberry y llevarse la tarjeta a otro ordenador, podemos hacer lo mismo pero en remoto:

ssh usuario@192.168.1.70 -p 6814 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=/media/backups/rpi/webserver/backup_remoto_20170825.gz

Solución de problemas con sudo

En el caso de obtener un mensaje de error del tipo:

sudo: no tty present and no askpass program specified

Debemos conectarnos al equipo remoto y editar el fichero visudo mediante:

sudo EDITOR=nano visudo

y permitir al usuario ejecutar únicamente el comando dd sin password añadiendo al final del fichero:

usuario ALL = NOPASSWD: /usr/bin/dd if=/dev/mmcblk0 *

Si relanzamos el comando de copia, ahora no debería haber ningún problema.

Es un proceso lento, alrededor de 2 horas con una tarjeta de 32GB y con una RPi3.

Restaurar backup remoto

Para restaurar, ahora sí desde un ordenador en local, ejecutaremos la siguiente orden:

gzip -dc /media/datos1/backups/rpi/webserver/backup_remoto_20170825.gz | sudo dd of=/dev/sdc bs=1M status=progress; sync

Alrededor de 40 minutos para restaurar una tarjeta de 8GB con una RPi3.

Índice de la serie

Este artículo forma parte de la serie Seguridad en Raspberry Pi.

Jaume Ferré

Jaume Ferré

Tengo un trabajo que no tiene nada que ver con esto. Pero me gusta cacharrear con webs, Linux y el homelab. De vez en cuando alguien me paga por ello, lo cual siempre sorprende. Canon R7 en mano y Arch Linux de fondo.

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación.

0.0 (0 votos)
Comentarios