Backups en Nextcloud

Antes de actualizar Nextcloud es importante realizar una copia de seguridad de la base de datos y los ficheros.

Vamos a ver como, con dos simples instrucciones podemos crear y posteriormente automatizar, los backups de nuestra nube privada.

Copia de ficheros y carpetas

Empezamos haciendo una copia de los ficheros y carpetas

sudo rsync -Aax -progress /var/www/nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/

Donde nextcloud-dirbkp es el la carpeta donde se creará la copia.

Copia Base de datos

Y ahora realizamos el backup de la base de daos, el ejemplo es sólo para bases de datos mysql/mariadb, si instalaste Nextcloud con otro gestor de base de datos este método no te funcionará.

mysqldump --single-transaction -h [server] -u [username] -p[password] [nombre_db] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Donde:

  • server es la dirección ip del servidor donde está funcionando mysql
  • username es el nombre de usuario con privilegios de administración de la base de datos, si leíste mis anteriores artículos sobre nextcloud, verás que el usuario creado se llamaba nextcloud
  • password es la conraseña del usuario anterior
  • nombre_bd es el nombre de la base de datos de nextcloud, yo la llamé también nextcloud

Yo lo tengo así:

/usr/bin/mysqldump --single-transaction -h localhost -u nextcloud -p'contraseña' nextcloud > /media/Nas01/Backups/RPi/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Automatizar copia de seguridad

Creamos un fichero llamado backup.sh y ponemos en su interior, los dos comandos anteriores, debes de cambiar ruta por el path o carpeta donde quieres dejar la copia de seguridad :

#!/bin/sh
/usr/bin/sudo /usr/bin/rsync -Aax -progress /var/www/nextcloud/ /ruta/nextcloud-dirbkp_`date +"%Y%m%d"`
/usr/bin/sudo /usr/bin/mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > /ruta/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Le damos permisos de ejecución:

chmod 700 backup.sh

Probamos que el script funciona

~/nextcloud/backup.sh
ls -l /ruta/
total 20760                                                                        
drwxr-x--- 15 pi www-data     4096 jul 22 13:44 nextcloud-dirbkp_20170725           
-rw-r--r--  1 pi pi       21250215 jul 25 18:56 nextcloud-sqlbkp_20170725.bak

Si todo ha ido bien editamos crontab para añadir el fichero y programar su ejecución

crontab -e

Y copiamos el siguiente código:

0 2 * * * ~/nextcloud/backup.sh >/dev/null 2>&1

Esto hará que se ejecute el fichero todos los días a las 2 de la mañana

Para guardar el fichero pulsamos CTRL+x pra guardar los cambios y salir

comentario powered by Disqus