Gestión de backups del sistema

En este artículo hablo de las acciones y comandos Unix esenciales para la gestión de backups del sistema. La identificación de unidades, respaldo de particiones, compresión e integridad.

Identificar la unidad a respaldar

Antes de realizar una copia de seguridad, se necesita identificar el nombre que Linux asigna a nuestra unidad, cuando se conecta a nuestro equipo la tarjeta con PiServer.

identificar la unidad a respaldar

Como muestra la imagen anterior, se utiliza el comando Linux df -h para listar las unidades montadas en el sistema. La clave para identificarlo es el nombre de las particiones de la distribución.

  • BOOT: Partición de arranque en Raspberry Pi OS Buster. (sda1)
  • ROOTFS: Partición con el raíz del sistema operativo. (sda2)

Este entorno de desarrollo WordPress, está basado en la distribución oficial de Raspberry Pi OS basada en Debian Buster.

PiServer

Por tanto, volviendo a la imagen se conoce que nuestra unidad a respaldar es /dev/sda. Además que la partición BOOT es identificada como sda1, y la partición ROOTFS como sda2.

Respaldar las particiones en una unidad

Se procede de manera idéntica a lo explicado en el artículo «Copia de seguridad offline del sistema«, excepto en la forma de especificar la ruta de entrada del medio a respaldar, en este caso: Una partición.

¿Cómo nombra Linux las particiones?

Primero, los dispositivos detectados por un sistema Linux cuelgan todos del directorio raíz /dev. Las unidades de almacenamiento son uno del tipo de dispositivos que podemos encontrar allí.

Las primeras dos letras identifican el tipo de dispositivo de almacenamiento. Por ejemplo, los antiguos discos IDE se reconocen por hd y los actuales SATA o USB mediante sd. Luego, le sigue una letra que identifica las distintas unidades de un mismo tipo, conectada al mismo equipo. Y por último, un número que indica el número de partición dentro de una misma unidad.

Respaldar una partición de una unidad

dd bs=4K status=progress conv=fsync if=/dev/sda2 of=~/Temporales/yymmdd_mibackup.img

El comando de arriba hace copia de seguridad de la partición sda2 que conforme el apartado anterior, se corresponde con ROOTFS y la raíz de nuestro sistema operativo.

Restaurar una partición de una unidad

dd bs=4K status=progress conv=fsync if=~/Temporales/yymmdd_mibackup.img of=/dev/sda2

Ahora, este otro comando realiza el proceso inverso sobre la misma partición ROOTFS, de la tarjeta que contiene el entorno PiServer.

El fichero con la copia de seguridad y la partición de destino, tienen que tener ambas el mismo tamaño.

Advertencia

Reducir tamaños de estos backups

Para reducir el tamaño de estos backups, se utiliza un compresor de archivos. En mi caso, utilizo el formato ZIP.

Comprimir imágenes de backup

zip -v fichero.zip yymmdd_mibackup.img

El comando Linux zip permite comprimir los ficheros y directorios dados como argumentos, al conocido formato ZIP. El parámetro -v muestra información del proceso en pantalla. Le sigue el nombre del archivo comprimido, y luego aquellos a comprimir.

Descomprimir imágenes de backup

Para descomprimir un fichero ZIP, se utiliza el comando unzip. El parámetro -D le dice que no lo descomprima dentro de un directorio, del mismo nombre al archivo comprimido. Luego, le sigue el nombre del fichero comprimido que contiene el backup deseado.

unzip -D fichero.zip

El ratio de compresión de estos ficheros de backup, puede mejorarse si previamente se ha puesto a cero todos los bits del espacio vacío, eliminando así todos los ficheros residuales que queden.

Para terminar, decir que hay otros formatos de compresión de archivos como RAR, 7ZIP, GZIP o TAR, de los que explicaré su uso en linea de comando en una futura entrada del mi blog.

Verificar la integridad de los backups

El verificar la integridad de los backups consiste en extraer una huella digital que garantiza la fidelidad de su contenido con respecto al medio original, en cada intercambio o transferencia de estos ficheros.

El comando Linux md5sum permite, el generar esas huellas digitales de nuestras copias de seguridad. A su vez, verifica que la integridad de dichos ficheros se mantiene inalterable con el paso del tiempo.

Generar huella digital de un fichero

md5sum -b fichero_backup > huella_digital.md5

Este ejemplo, el parámetro b indica que el fichero_backup se trate como binario, durante el proceso de generación de su huella digital. Y el resultado se redirige hacia el fichero huella_digital.md5, cuyo contenido será el código de integridad generad más el nombre del archivo verificado.

Comprobar integridad de un fichero

md5sum -c huella_digital.md5

Ahora, la opción c indica que se abra el fichero huella_digital.md5, se genere el código de integridad del archivo contenido, y se compare con la huella digital almacenada, si coinciden mostrará que el backup asociado esta correcto, o de lo contrario está dañado.

Por tanto, la integridad de los backups es clave porque un fallo en el soporte físico de almacenamiento, el hardware de nuestro equipo o la infección por un virus, puede alterarla y dejar una copia de seguridad irrecuperable o un sistema inestable, cuando se restaura a partir de backups corruptos sin esta comprobación.