Respaldando y cifrando archivos con GPG para subir a la nube
Índice
Ya he escrito anteriormente sobre el respaldo de archivos y la importancia de los mismos, hace unos años en una de esas entradas describí una pequeña rutina de respaldos en Linux y ahora quiero hablar sobre cómo hacerlo en Windows usando también Mega para el almacenamiento.
Generar archivo de respaldo
El archivo de respaldo será un comprimido 7z (en mi caso), debemos preparar los archivos que va a contener. Tengo instalado 7Zip porque es muy bueno en Windows (también deja crear archivos ZIP). Luego creamos dos archivos de texto; incluir.txt y excluir.txt. Estos contendrán el listado de archivos y/o directorios que deseamos incluir o excluir, respectivamente. Por ejemplo:
incluir.txt
C:\Users\edgar\Documents\
excluir.txt
C:\Users\edgar\Documents\Proyecto 1\codigo-desarrollo\.git
C:\Users\edgar\Documents\Proyecto 1\codigo-desarrollo\application\logs\*.php
C:\Users\edgar\Documents\ejemplos
C:\Users\edgar\Documents\RESPALDOS
Luego creamos un archivo BAT llamado respaldo.bat:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "hoy=%%a"
set "AA=%hoy:~2,2%" & set "AAAA=%hoy:~0,4%" & set "MM=%hoy:~4,2%" & set "DD=%hoy:~6,2%"
set "HH=%hoy:~8,2%" & set "Min=%hoy:~10,2%" & set "Seg=%hoy:~12,2%"
set "fecha=%AAAA%-%MM%-%DD%" & set "hora=%HH%%Min%%Sec%" & set "completo=%AAAA%-%MM%-%DD%_%HH%-%Min%-%Sec%"
7z a -t7z -mhe=on [email protected] respaldo_%fecha%.7z [email protected]
En este caso me crearía un archivo 7z llamado respaldo_2019-06-12.7z si lo corriera en esa fecha. Este archivo contendría todo lo que está en incluir.txt menos lo que está en excluir.txt. Podemos usar la variable %hora% si se lo queremos agregar al nombre del archivo o usar %completo%, cuestión de gustos.
Cifrando el archivo
Ya que tenemos el archivo comprimido del respaldo, lo vamos a cifrar. Para eso necesitamos un buen programa llamado Gpg4win. Lo instalás y abrís Kleopatra, generás un par de claves pública y privada (o importás alguno que ya tengás) y anotamos el Correo de la cuenta y modificamos el archivo respaldo.bat agregando al archivo:
gpg -r [email protected] -o respaldo_%fecha%.7z.gpg -e respaldo_%fecha%.7z
Esto nos creará un archivo GPG que ha sido cifrado con nuestra llave pública.
Respaldar archivos a Mega
Hubo un tiempo en el cual megatools funcionaba bien pero ahora sólo se funciona con cuentas antiguas de Mega, por lo que recomiendo mejor instalar Megasync (herramienta de Mega). Entonces designé el directorio C:\Users\edgar\Documents\RESPALDOS (substituir por tu directorio) que contendrá mis archivos de respaldos el cual va a sincronizar a un directorio en mi nube de Mega. Agregamos al archivo respaldo.bat:
del respaldo_%fecha%.7z
move /Y respaldo_%fecha%.7z.gpg C:\Users\edgar\Documents\RESPALDOS\
Esto borra el archivo 7z y mueve el nuevo GPG al directorio donde va a ser sincronizado diciendo que si (/Y) sobreescriba el archivo si ya existe en el directorio de respaldos. Luego ya sólo quedar ejecutar respaldo.bat para generar nuestro respaldo.
Conclusión
De ésta manera podemos crear fácilmente un respaldo de nuestros archivos; generamos el archivo comprimido, lo ciframos con una llave pública y lo sincronizamos a la nube. Así tenemos un poco más de paz mental en cuánto a seguridad y privacidad. Y lo tenemos a bajo costo, en este caso podemos usar una cuenta gratuita para tener nuestros respaldos.
Gracias a Gloria Borrayo y Guillermo Schwindt por la revisión de este artículo.