Rutina personal de respaldos a bajo costo

Realizar respaldos es importante ante cualquier perdida de los archivos originales, incluso una memoria USB o un disco externo hacen el trabajo. También existen alternativas en línea gratuitas como Dropbox, OneDrive, Drive, Mega, etc. La desventaja de colocar tus archivos en línea es la privacidad ya que estos sitios están ubicados en otros países que se regulan bajo otras leyes y otras agencias no es conveniente subir tus archivos sin proteger.

Primero, debemos poseer o crear un nuevo par de claves (pública y privada) con gpg , esto nos permitirá cifrar nuestro archivo de respaldo de modo que sólo pueda ser descifrado con la clave privada que siempre debe ser secreta. Cuando tengamos esto lo demás será algo muy sencillo.

Para este ejemplo utilizaré Mega para el almacenamiento en línea, para que sea automática mi amigo Guille me comentó sobre la existencia de megatools una forma de conectar a Mega desde la línea de comandos. Además lo he pensado para que el respaldo sea una vez al día para el directorio de “documentos”. Creamos un directorio llamado RESPALDOS en la raíz de nuestra cuenta de Mega.

#!/bin/sh
ARCHIVO="/home/usuario/respaldo_`date '+%Y-%m-%d'`"
tar -cf ${ARCHIVO}.tar /home/usuario/documentos/
gpg --compression 0 --armor --recipient "Nombre Apellido (Comentario)" --encrypt --sign ${ARCHIVO}.tar
xz ${ARCHIVO}.tar.asc
rm ${ARCHIVO}.tar
megaput --disable-previews --path /Root/RESPALDOS ${ARCHIVO}.tar.asc.xz
rm ${ARCHIVO}.tar.asc.xz

Asignamos el nombre del archivo con su ruta a una variable. Luego usamos TAR para crear el archivo, como TAR por defecto no comprime nos beneficia porque así no tenemos que hacer doble compresión y es rápido el empaquetado.

Luego usamos gpg para cifrar y firmar el archivo TAR con nuestra propia clave pública, nuevamente deshabilitamos la compresión para ahorrar tiempo.

Ahora si comprimimos el archivo cifrado utilizando xz que se encarga de eliminar el archivo cifrado y luego eliminamos el TAR.

Con la configuración adecuada en megatools usamos megaput para subir el nuevo archivo al directorio de RESPALDOS. Al final eliminamos el archivo local.

Usando pipes (|) se podrían redirigir los resultados de un programa al otro así nunca grabamos nada en el disco (más seguridad) sino que se manejaría todo en la memoria. Aunque este script sea para ambientes Linux puede ser fácilmente traducible a ambientes Microsoft.


Creado: 2017-10-04

Actualizado: 2017-10-04