Cómo configurar Dropbox para automatizar los backups en un servidor Linux

El otro día tuve un problemita importante con un servidor, los backups son más viejos que la escarapela, pero qué cosa! Ahora bien, muchos sistemas como VestaCP suelen armar los backups en el mismo servidor en una carpeta dedicada pero ¿Qué pasa si perdés acceso al server mismo? No sirven de nada allí.

En algún momento expliqué cómo hacerlo con un script a un FTP pero hay formas más modernas de hacerlo y una es aprovechar, si tenés una cuenta paga, hacerlo a Dropbox. Como es uno de los métodos que utilizo para guardar archivos en la nube ¿Por qué no usarlo como para backups de backups? Al fin y al cabo la cuenta paga es de como 1TB, espacio sobra...

Bueno, primero que nada aclarar el escenario: Utilizo VestaCP en varios servidores Linux (Ubuntu) donde tengo todo tipo de sitios y una carpeta /backup donde se van juntando los backups diarios.

La idea es que un script ejecute la sincronización de esa carpeta a una de Dropbox pero no en la forma habitual de Dropbox (sincroniza a cada rato) sino que se ejecute una sola vez al día luego de los regulares backups.

Obviamente tiene que tener en cuenta archivos previos (saltar así no sube al pedo), conectarse vía API a Dropbox y hacer su trabajo de forma automatizada. Por suerte existe un script ya hecho para esto programado por Andrea Fabrizi llamado Dropbox-Uploader.

Es un script bash así que no está pensado para Windows ni nada así, si quieren uno en Python aquí hay otro que hace lo mismo aunque hace como tres años que nadie toca (warning con eso!).

Instalación

Como estoy en Ubuntu pasaré ejempo para mi S.O. pero en casi cualquier Linux da igual.

sudo apt install git

Esto por si no tienen git en el servidor, si ya lo tenían siguen con este paso para instalarlo, obviamente ubíquense en la carpeta donde quieran que ésto se instale de su home o donde fuere:

git clone https://github.com/andreafabrizi/Dropbox-Uploader.git

Entramos:

cd Dropbox-Uploader

Le damos permisos de ejecución:

sudo chmod +x *.sh

y ejecutamos:

./dropbox_uploader.sh

Detalle aquí, si van a utilizarlo con permisos de sudo es necesario que ejecuten esto con el debido sudo adelante para que las credenciales queden guardadas en root y no en el usuario.

Como notarán nos pide un Token y esto sale de Dropbox, a continuación lo explico.

Token de Dropbox

Lo bueno de Dropbox es que tiene API y nos deja crear Apps dentro de la plataforma, tan sólo hay que entrar en Dropbox Developers y crear la propia.

Luego de crearla y darle un nombre creativo (?) hay que aclarar el tipo de acceso, Full Dropbox, y aceptan

En la siguiente pantalla van a poder generar el Access Token que necesitan para conectar el script:

Lo pegan en la consola y listo, ya está conectado

Hacer algo con todo esto

Hasta ahora conectaron un script, falta hacer algo con ésto.

En este ejemplo crean una carpeta en particular, en mi caso ya existe y ya se dónde tengo que ir a buscar los backups porque los hace otro proceso, sólo necesito subirlos!

./dropbox_uploader.sh -s upload /backup/ /backup/sitioabackupear/

Así es, tomo la carpeta backup y la tiro cochinamente en otra backup dentro de Dropbox, tip para los que no tienen mucho espacio: recuerden configurar la sincronización selectiva para que todo esto no les baje a la PC personal :D

Esto mismo lo pueden ejecutar desde un cron (que es lo que hago) pero eso googleenlo en otro lado :D la idea está aquí.

También hay muchos otros scripts para hacer backups selectivos, se puede hacer un dump de la base y subir a otro servicio e incusive seguro que existe todo esto para Google Drive porque no es tan complejo tampoco.

En la web de Git del proyecto estan todos los parámetros y combinaciones posibles.

Tip final: este script no borra backups viejos y en algún momento se te va a llenar Dropbox :P vale entrar una vez cada tanto a  borrar backups viejísimos...

Otros posts que podrían llegar a gustarte...

Comentarios

  • Horacio    

    Hola!
    Preguntonta, ¿no se podría hacer un simple rsync + cron de lo que se quiere resguardar hacia la carpeta de dropbox sin usar ningún uploader?
    Saludos!

    • Responder
    • Citar
    • Comentado:
    • Pero Dropbox no es un servidor más, es un servicio y todo se sube allí por la API, así que el rsync o lo hace la app de Dropbox (que estoy evitando usar aquí intencionalmente) o lo hacés con este script que... básicamente hace eso :P
      Tené en cuenta que no tenés acceso a nada más en Dropbox, no es TU servidor.

      • Responder
      • Citar
      • Comentado:
      • Horacio    

        Asumi que tendrias algun servidor con escritorio y el cliente oficial instalado. Saludos!

        • Citar
        • Comentado:
  • interesante
    Aunque yo hubiera usado "Folder App" en vez de "Full Dropbox"
    Yo implemento algo diferente con los backups de los servers remotos que administro, los que tengo en CABA uso Minio en un host en mi home https://s3.ngen.com.ar (docker + vlans, etc) totalmente aislado de mi red local que uso en casa y con restic (https://restic.net/) hago backups de todo sin dramas.

    • Responder
    • Citar
    • Comentado:
  • nacho    

    Pegale una mirada a rclone https://rclone.org/, yo lo uso desde hace mas de un año con google drive pero funciona con casi medio centenar de proveedores cloud. Es como rsync, pero para la nube

    • Responder
    • Citar
    • Comentado:
    • nacho    

      exageré, son 38 incluyendo ftp, http, y localfilesystem. Igual son bocha.

      • Responder
      • Citar
      • Comentado:
      • creo que 38 está más cerca de medio centenar que 3 así que vale :D

        • Citar
        • Comentado:
  • MARTIN    

    Por si quieren usar google drive, recomiendo esta herramienta

    https://olivermarshall.net/how-to-upload-a-file-to-google-drive-from-the-command-line/

    Funciona de lujo

    • Responder
    • Citar
    • Comentado:
  • Joel    

    A mi me gusta usar una combinación de scripts + BitTorrent Sync (la versión 1.4), ahora se llama Resilio.
    Es "nube personal" y se puede replicar en la cantidad de servidores que configuren.
    Teóricamente, mejor sería SyncThing que es totalmente abierto, pero todavía no me acostumbro a usarlo, y el cliente/servidor es mucho más grande.

    • Responder
    • Citar
    • Comentado:

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https
Para evitar bots, si se tardó mucho en leer la nota seguramente no sirva y tenga que intentar dos veces

Negrita Cursiva Imagen Enlace


comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador