Backup automático en NextCloud

Una de las cuestiones más importantes cuando se trabaja con NextCloud es prepararse para el desastre que puede producirse antes de una actualización o por fallos de hardware como discos duros.

Es por ello que voy a relataros una forma bastante sencilla de realizar un backup de forma automática para que ante un desastre tengamos una copia lo más actualizada posible de todos los datos de nuestro NextCloud.

Para ello sincronizo la carpeta de NextCloud y realizo un dump de la base de datos con la variable $DATE de forma que tenga una copia de la base de datos diaria.

Ante todo comentar que en mi caso realizo la copia en un segundo disco [/copias] directamente conectado en el servidor.

En cuanto al script el código es bastante sencillo:

#!/bin/sh
:${DATE:=$(date +'%Y-%m-%d')}
cd /var/www/nextcloud/
sudo -u apache php occ maintenance:mode --on #En caso de Debian www-data en vez de apache
rsync -rtvu --delete /var/www/nextcloud /copias/ #Sincronizo toda la carpeta de NextCloud
cd /copias/dbs
mysqldump --opt -hlocalhost -uroot -p"CONTRASEÑA_ROOT_MYSQL" bd_nc> "/copias/dbs/bd_$DATE.sql"
cd /var/www/nextcloud/
sudo -u apache php occ maintenance:mode --off #En caso de Debian www-data en vez de apache
exit 0

Dicho script lo he guardado en la carpeta /root con el nombre backup_nc.sh, y he editado crontab para que se ejecute a las 4 de la madrugada todos los días.

chmod +x backup_nc.sh
crontab -e
0 4 * * * cd /root && ./backup_nc.sh

Ten en cuenta que vamos a tener respaldo de la base de datos de forma diaria, sin embargo la carpeta de datos solo se guardará la ultima copia al sincronizarla con rsync

Un comentario sobre “Backup automático en NextCloud

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.