Raspberry Pi. Haciendo copias de seguridad
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.