Blog

No pretendo ser un gurú. En la red hay muchos y muy buenos.

20 Abr 2018

Seguridad en la Raspberry. Episodio VII: 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 articulo veremos como 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 donde 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 +%yyyy%mm%dd`.dd

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

sha1sum
/media/datos1/backups/rpi/webserver/backup_`date +%yyyy%mm%dd`.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 identicas, ¡felicidades! Solo nos quedaría comprimir el fichero resultante del backup.

tar -czvf
backup_`date +%yyyy%mm%dd`.tar.gz
/media/datos1/backups/rpi/webserver/backup_`date +%yyyy%mm%dd`.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 encargara 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 <user>@192.168.1.70 -p 6814 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=/media/backups/rpi/webserver/backup_remoto_20170825.gz

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 <user> ejecutar unicamente el comando dd sin password añadiendo al final del fichero:

<user>   ALL = NOPASSWD: /usr/bin/dd if=/dev/mmcblk0 *

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

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

Para restaurar, ahora si desde un ordenado 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

Visto 379 veces
Valora este artículo
(1 Voto)

Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el código HTML. Tu dirección de correo NO será publicada.

Twitter

Últimos tweets