Otro capitulo 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 articulos, desde que conoci Docker, se abrio un nuevo mundo y para esto, no iba a ser menos.

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

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

Asi, que nos pusimos a ello. Lo primero fue decidir que información es la importante, luego como la vamos a estructurar (donde estara el directorio). En mi caso, la cosa quedo 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 decido 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 magica instruccion que nos lo pondra en marcha todo:

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

Ahora nos queda la ultima 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 traves de los ficheros de configuración que estan en el host del docker, pero prefiero acceder para hacer la configuración. Que en mi caso estan en /mnt/config/rsnapshot y a 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 HABRAS 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

Y 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

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

Referencia