Utiliza rclone para sincronizar copias de seguridad en Dropbox o Google Drive

Existe un plugin que te permite sincronizar tus copias de seguridad de Discourse con varios proveedores de almacenamiento en la nube. Desafortunadamente, actualmente no funciona con Dropbox ni Google Drive. Si de todos modos deseas almacenar tu copia de seguridad en Dropbox o Google Drive, sigue los pasos a continuación. Usaré Dropbox como ejemplo, pero las instrucciones también funcionarán con cualquier otro backend compatible con rclone.

Aviso: Las instrucciones se han probado en Ubuntu 16.04 y funcionan para mí, pero no soy un experto en esto, por lo que podría haber mejores formas de hacerlo. Siéntete libre de corregirme y estaré encantado de actualizar esta publicación.

Instalar rclone

sudo curl https://rclone.org/install.sh | sudo bash

Si el comando anterior falla, es posible que se te pida instalar una herramienta de descompresión:

sudo apt-get install unzip

Otorgar acceso a Dropbox

Esta es la parte más complicada porque necesitas un navegador para otorgar a rclone acceso a tu Dropbox, lo cual no es fácil, por decir lo menos, cuando estás accediendo mediante SSH a un VPS. Por lo tanto, debes proceder en dos pasos:

En tu servidor, ejecuta:

sudo rclone config

y sigue las instrucciones. En algún momento se te preguntará:

Use auto config?

Y responderás N.

Ahora debes cambiar a tu equipo de escritorio para obtener el token de autenticación. Esto significa que necesitas instalar rclone en tu equipo de escritorio (Rclone para Windows está aquí: Rclone downloads) y seguir las instrucciones de Remote Setup.

Una vez que hayas obtenido tu token y lo hayas pegado en el prompt de SSH que lo estaba esperando, puedes verificar que todo funcionó como se esperaba obteniendo una lista de todos los directorios en tu Dropbox:

rclone lsd drobo:

donde drobo es el nombre que asignaste a tu Dropbox anteriormente.

Copiar tus copias de seguridad a Dropbox

Localiza tus archivos de copia de seguridad. Por lo general, los encontrarás en /var/discourse/shared/standalone/backups/default. Si estás utilizando una configuración de dos contenedores, probablemente estarán en /var/discourse/shared/web-only/backups/default.

El comando para copiar tus copias de seguridad al directorio de copias de seguridad en tu Dropbox será:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

Configurar un trabajo cron para copiar tus copias de seguridad a Dropbox

Para copiar las copias de seguridad todos los días a las 6 p. m., agrega lo siguiente a tu crontab:

crontab -e

y agrega:

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

Puedes ejecutarlo con más frecuencia si lo deseas, ya que de todos modos solo se copiarán los archivos nuevos.

Ten en cuenta que la opción copy agregará más y más copias de seguridad a tu Dropbox, incluso cuando las que están en tu servidor se eliminen. Si solo deseas conservar las que también se mantienen en tu servidor, utiliza sync en lugar de copy.

16 Me gusta

Consejo para aquellos que sincronizan sus copias de seguridad en Google Drive con frecuencia (por ejemplo, a diario) a través de un trabajo cron y no tienen mucho espacio libre en su unidad, recomendaría agregar la bandera --drive-use-trash=false a su comando rclone.

Ejemplo:

rclone sync /var/discourse/shared/standalone/backups/default --drive-use-trash=false --exclude tmp/ discourse:

Con esta bandera, rclone eliminará las copias de seguridad obsoletas de Google Drive en lugar de enviarlas a la papelera, donde permanecen 30 días antes de ser eliminadas automáticamente. Puede ahorrar mucho espacio en Drive.

4 Me gusta