En este post voy a hacer una guía y mostrar un script para respaldar todo el contenido de una carpeta de Linux y subir la misma a nuestra cuenta de Google Drive.
También voy a mostrar cómo podemos hacer estos respaldos automáticos y periódicos usando cron para ejecutar el archivo cada cierto tiempo y realizar la subida del archivo a Google Drive.
No sé si va contra las políticas de Google (cosa que no creo, ya que estás usando el almacenamiento para cosas personales) así que hazlo bajo tu propio riesgo.
Para esto vamos a usar la herramienta llamada gdrive. Debes descargarla e iniciar sesión como se detalla en este post.
Cuando ya hayas iniciado sesión es momento de hacer el script.
Vamos a comprimir la carpeta en un archivo tar.gz, que es algo como un zip. Después vamos a invocar a gdrive con:
gdrive upload archivo_comprimido
Cuando se termine de subir, eliminamos los archivos y todo se habrá completado.
#!/bin/bash
# Script para respaldar carpeta
# en Google Drive desde Linux
# By: parzibyte
# Visita: https://parzibyte.me/blog
FECHA_Y_HORA=$(date "+%d-%m-%y_%H-%M-%S")
RUTA_HOME="/home/parzibyte"
# La ubicación del binario gdrive
EJECUTABLE_DRIVE="$RUTA_HOME/software/gdrive"
# Nombre de archivo de salida
NOMBRE_ARCHIVO="respaldo_$FECHA_Y_HORA.tar.gz"
# Almacenamiento temporal del archivo comprimido
CARPETA_DESTINO="$RUTA_HOME/respaldos"
# Simple ruta concatenada
RUTA_ABSOLUTA_ARCHIVO="$CARPETA_DESTINO/$NOMBRE_ARCHIVO"
# ¿Cuál carpeta (con su contenido) respaldar?
CARPETA_RESPALDAR="/home/parzibyte/fotos"
# Comandos
# Creamos el directorio para los respaldos, por si no existe
mkdir -p "$CARPETA_DESTINO"
# Comprimir carpeta en un tar.gz
echo "Creando archivo de respaldo..."
tar --ignore-failed-read --create --gzip --file="$RUTA_ABSOLUTA_ARCHIVO" "$CARPETA_RESPALDAR"
# Si el archivo .tar.gz existe, continuamos
if [ -f "$RUTA_ABSOLUTA_ARCHIVO" ]; then
echo "Subiendo archivo usando binario de $EJECUTABLE_DRIVE"
# Invocar a gdrive con la opción upload y la ruta del archivo comprimido
$EJECUTABLE_DRIVE upload $RUTA_ABSOLUTA_ARCHIVO
echo "Eliminando archivos después de ser subidos"
# Eliminar después de subirlo
rm $RUTA_ABSOLUTA_ARCHIVO
fi
Hablando de cosas extras, si la carpeta de respaldos no existe, se crea.
Por cierto, el nombre del archivo llevará la fecha y hora de creación. De hecho esto es una mejora de un script de respaldos que había publicado.
Si quieres usar el script descárgalo y simplemente cambia la ruta de home, pues de ahí se parte para ubicar el ejecutable de gdrive y para guardar los respaldos.
De manera opcional, podemos hacer los respaldos y subidas automáticas.
Para ello hay que editar el archivo crontab (con crontab -e
, eligiendo un editor que nos guste) y agregar lo siguiente:
0 7 * * 1,3,5 bash -c /ruta/del/script
En mi caso:
0 7 * * 1,3,5 bash -c /home/parzibyte/script/respaldar_blog.sh
Los respaldos se harán los lunes, miércoles y viernes a las 7 de la mañana, pero puedes cambiar los períodos.
Si sirve de algo, aquí dejo una herramienta para entender crontab.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.