Raspberry Pi. Haciendo copias de seguridad

· 3 min · @Hardware · #Raspberry Pi #Docker

Otro capítulo más con respecto a la configuración de de mi RPI4, en este caso son las copias de seguridad de la información más importante.

Tal como he dicho en otros artículos, desde que conocí Docker, se abrió un nuevo mundo y para esto, no iba a ser menos.

Para realizar las copias de seguridad quería usar esta imagen rsnapshot, hecha por PeladoNerd, pero no funciona. No está compilada para ARM, le di un toque por octubre, pero supongo que por trabajo, no ha podido solucionar el problema, así que tuve que buscarme otras opciones. Y como no, salió al rescate linuxserver.

Lo bueno que tiene rsnapshot es que solamente te copia los ficheros que se modifican. Al principio, sí que hace una copia de todo, porque no tiene nada con que comparar, pero a partir de ese momento, solo hace las copias de los ficheros que se modifican.

Así, que nos pusimos a ello. Lo primero fue decidir qué información es la importante, luego como la vamos a estructurar (donde estará el directorio). En mi caso, la cosa quedó de la siguiente manera:

### DIRECTORIO DONDE SE ALMACENAN LAS COPIAS DE SEGURIDAD
/mnt/seguretat

### DIRECTORIOS DE LOS QUE QUIERO COPIAS DE SEGURIDAD
# el directorio de mi usuario (junto con el docker-compose de docker)
/home
# el directorio donde estan las configuraciones del servidor que son importantes
/etc
# el directorio donde tengo las configuraciones de las imagenes de docker
/mnt/config

Una vez ya tenemos decidido la información a salvaguardar, pasamos a la creación del docker-compose:

rsnapshot:
  image: ghcr.io/linuxserver/rsnapshot
   container_name: rsnapshot
   restart: unless-stopped
   volumes:
    - /mnt/config/rsnapshot:/config
    - /mnt/seguretat:/snapshots
    - /etc:/data/etc
    - /home/pi:/data/home/pi
    - /mnt/config:/data/config
   environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Madrid

Después de crear el docker, solamente nos quedar ejecutar la mágica instrucción que nos lo pondrá en marcha todo:

usuari@raspberry:~$ docker-compose up -d rsnapshot

Ahora nos queda la última parte, que es configurar los ficheros de configuración de rsnapshot. En mi caso lo hago dentro del mismo docker. Es posible que se pudiera hacer a través de los ficheros de configuración que están en el host del docker, pero prefiero acceder para hacer la configuración. Que en mi caso están en /mnt/config/rsnapshot y la configuración la tengo de la siguiente manera:

usuari@raspberry:~$ cd dockerCompose
usuari@raspberry:~/dockerCompose $ docker-compose exec rsnapshot sh

### EDITO LOS FICHEROS RSNAPSHOT.CONF DE LA SIGUIENTE MANERA
# DIRECTORIO QUE CONTIENE LAS COPIAS (QUE LO HABRÁS CONFIGURADO EN EL
# DOCKER-COMPOSE)
rsnapshpot_root   /snapshots

### SON LOS INTERVALOS QUE SE SALVAN
# SE MANTIENEN 7 COPIAS DIARIAS
retain    daily   7
# SE MANTIENEN 4 COPIAS SEMANALES
retain    weekly  4
# SE MANTIENEN 3 COPIAS MENSUALES
retain    monthly 3

# FICHERO DE LOGS  
logfile   /config/rsnapshot.log
# DIRECTORIO A COPIAR - EN MI CASO, DENTRO DE DATA, TENGO LOS DIRECTORIOS
# A SALVAGUARDAR
backup    /data/    localhost/

El siguiente fichero que hay que configurar, es el de cron (propio de rsnapshot), que se encarga de ejecutar las copias:

# AUN SIGO DENTRO DEL CONTAINER
cd crontabs
vi root

Ahora modificamos el archivo:

# AHORA PASAMOS A LA EDICIÓN DEL FICHERO
# min   hour    day   month   weekday   command
# SE EJECUTA CADA DIA A LAS 2 DE LA MAÑANA
0       2       *     *       *         rsnapshot daily
# SE EJECUTA CADA LUNES (WEEKDAY - 1) A LAS 4 DE LA MAÑANA
0       4       *     *       1         rsnapshot weekly
# SE EJECUTA CADA DIA 1 DE CADA MES A LAS 6 DE LA MAÑANA
0       6       1     *       *         rsnapshot monthly

Con esto, ya tenemos configurado rsnapshot, ahora solamente hay que dejarlo que funcione y listo.

◇ Referencia