Raspberry Pi - Backup remoto

Como crear una copia de seguridad sin apagar el sistema

Roberto Lodeiro

Si odias apagar tu Raspberry PI para hacer una copia de seguridad del sistema, continua leyendo.

Ya te habrá quedado claro que soy un Full Lover de la Raspberry PI, la uso como servidor principal y es casi mas importante que yo en casa, pero el ritual de hacer una copia de seguridad me cansaba. Tenia que apagarla, desconectar los discos y la microSD, conectar todo a mi pc y hacer el backup. Después había que volver a conectar todo, encenderla y comprobar que todos los servicios se iniciaban de forma correcta.

Esos malos tiempos se han acabado, ¡te explico como!


Requisitos

Basta con tener habilitado el acceso remoto con SSH en nuestra Raspberry PI. En caso contrario, podemos crear un archivo con nombre ssh en la particion /boot de la misma y reiniciar. Este proceso se puede hacer tando desde sistemas Linux como macOS.

Este ejemplo es con una Raspberry que solo tiene microSD como disco del sistema, pero en el caso de tener también un disco USB como explique en esta entrada, solo hemos de hacer dos copias, una de la microSD y otra del disco USB siguiendo estos mismos pasos.

Localizar el nombre del disco

  • Entrar a la Raspberry PI por ssh

    $ ssh pi@xxx.xxx.x.xxx
    
    • Ver el nombre del disco

      $ lsblk -p
      

    Saldrá algo como lo siguiente:

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    /dev/mmcblk0 179:0 0 14,9G 0 disk 
    ├─/dev/mmcblk0p1 179:1 0 43,2M 0 part /boot
    └─/dev/mmcblk0p2 179:2 0 14,8G 0 part /
    

    Copiar el nombre, en este caso es /dev/mmcblk0

  • Cerrar la conexion ssh

    $ exit
    

    Iniciar el backup

    • Ejecutar lo siguiente
    $ ssh pi@xxx.xxx.x.xxx "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=$HOME/backupPi.gz status=progress
    

    Nos pedirá la contraseña remota y comenzará el backup. Previamente hemos de modificar algunos parámetros.

Parámetros a modificar

* pi -> Nombre de nuestro usuario en la Raspberry PI
* xxx.xxx.x.xxx -> Direccion IP a la que nos queremos conectar
* if=/dev/mmcblk0 -> Nombre del disco
* of=$HOME/backupPi.gz -> "Directorio/nombreArchivo.gz" donde se guardara el backup

De esta forma, conectaremos con nuestra Rapberry PI por ssh, haremos una copia con dd ya comprimida, y la guardaremos en el directorio local indicado.

Gracias a status=progress tendremos información del progreso de la copia hasta que esta finalice.

Restaurar el backup

Si queremos restaurar la copia, solo tenemos que conectar el disco en nuestro pc y hacer lo siguiente:

  • Comprobar el nombre del disco de destino

    $ lsblk -p
    
  • Situados en el directorio donde está la copia:

    $ gunzip -c backupPi.gz | dd of=/dev/mmcblk0
    

    Cambiando el nombre de la copia y el del disco de destino por los adecuados.


Espero que sea útil, ¡gracias por leerme!