Dentro de las políticas de gestión de los backups de un sistema informático, es muy importante mantener los respaldos por fuera de la máquina de origen. Es por eso que en este artículo vamos a tratar de cómo subir los backups desde Linux Ubuntu a Google Drive con Grive.
Grive es una aplicación para Linux que permite la conexión con Google Drive para sincronizar archivos. Estos son los pasos que se siguen para configurar esta utilidad, considerando que el servidor base en Linux no tiene interfaz gráfica:
Procedimiento para subir backups a Google Drive con Grive
1. Desde un usuario con permisos para «sudo», que no sea root se ingresan los comandos:
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install grive
2. Ahora nos ubicamos en la carpeta que se vaya a sincronizar con una cuenta de Google Drive, por ejemplo la carpeta Backup (se crea la carpeta si no existe)
cd ~/Backup
3. Luego se ingresa este comando:
grive -a
Sale ahora un mensaje como el que se muestra a continuación:
----------------------- Please go to this URL and get an authentication code: https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fdocs.google.com%2Ffeeds%2F+https%3A%2F%2Fdocs.googleusercontent.com%2F+https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2F&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=22510474.apps.googleusercontent.com ----------------------- Please input the authentication code here:
4. Se copia la URL y se pega en un navegador cualquiera como Chrome o Firefox. Ahora se nos pide con cuál cuenta de Google se va a dar la autorización, y al final se aceptan los permisos solicitados por Google.
Entonces ahora sale un código que se va a usar en el punto 3.
5. Este código se pega en la consola, y ahí ya debe empezar a subir los backups manualmente.
6. Ahora, si queremos que la sincronización se haga a una hora específica, entonces creamos un cron para ese fin. En este ejemplo se hace a las 2 am de todos los días:
00 02 * * * cd "$HOME"/Backup && grive > /tmp/GRIVE_LOG
En /tmp/GRIVE_LOG se guardan los resultados del comando que se ejecuta en el cron.
Sincronizar con Google Drive con detección de cambios
Ahora, si se quiere que se detecten los cambios en la carpeta local, para que se sincronicen, se realiza el siguiente procedimiento:
1. Se instala el programa inotify-tools
sudo apt-get install inotify-tools
2. Se crea el script grive.sh, de autoría de Peter Österberg con:
#!/bin/bash # Ruta del programa grive GRIVE_COMMAND_WITH_PATH=/usr/bin/grive # Ruta de la carpeta a sincronizar GDRIVE_PATH=~/Backup # Timeout en segundos para sincronizaciones periódicas TIMEOUT=300 while true do inotifywait -t $TIMEOUT -e modify -e move -e create -e delete -r $GDRIVE_PATH cd $GDRIVE_PATH && $GRIVE_COMMAND_WITH_PATH done
3. Se dan los permisos de ejecución al script
chmod +x grive.sh
4. Finalmente se pone a ejecutar al arranque de la máquina dependiendo de la distribución de Linux.
Esta opción es válida para subir los backups a un lugar geográfico diferente de la máquina de origen, llevándolos a la nube de Google Drive, sin tener que contar con máquinas adicionales para que guarden los respaldos periódicos.
Este artículo hace parte del sistema de divulgación de conocimiento de ITSoftware SAS.