En el siguiente artículo vamos a echar un vistazo a Restic. Este es un programa para realizar copias de seguridad gratuitas y rápidas. Es un programa de código abierto, seguro y multiplataforma, escrito con el lenguaje de programación Go.
Restic encripta los datos con AES-256 y los autentica usando Poly1305-AES. Realizar copias de seguridad y posteriormente restaurar estos datos es realmente rápido y fácil. En este artículo vamos a ver como utilizar este programa en Ubuntu. Si alguien necesita más información que la que aquí se aporte, puede consultar la página web oficial.
Descargar Restic
Para instalar este programa en Ubuntu o Linux Mint no tendremos más que escribir en la terminal (Ctrl+Alt+T) los siguientes comando:
wget https://github.com/restic/restic/releases/download/v0.8.3/restic_0.8.3_linux_amd64.bz2 && bunzip2 restic_0.8.3_linux_amd64.bz2 && mv restic_0.8.3_linux_amd64 restic && sudo chmod +x restic
Ahora podremos utilizar el archivo restic para nuestras copias de seguridad.
Realizar una copia de seguridad y restauración de datos usando Restic
Podremos respaldar nuestros datos importantes en nuestro sistema local. El programa admite los siguientes back-ends para almacenar las copias de seguridad:
- Directorio local
- sftp server (via SSH)
- HTTP REST Server
- AWS S3
- OpenStack Swift
- BackBlaze B2
- Microsoft Azure Blob Storage
- Google Cloud Storage
En este artículo solo he cubierto cómo hacer una copia de seguridad y restaurar datos en un directorio local. Si alguien está interesado en otros métodos de copia de seguridad, puede hacer clic en el enlace respectivo.
Copia de seguridad de datos en el directorio local
Primero vamos a crear un repositorio para almacenar la copia de seguridad. Por ejemplo, voy a crear un repositorio llamado backup en mi directorio $HOME.
./restic init --repo ~/backup
A continuación escribimos la contraseña para el repositorio. Debemos recordar la contraseña para acceder a este repositorio más adelante. De lo contrario, perderemos permanentemente los datos almacenados.
A continuación, haremos una copia de seguridad de nuestro datos en el repositorio escribiendo en la misma terminal:
./restic -r ~/backup backup ~/Documentos
En este ejemplo voy a realizar una copia de seguridad de la carpeta ~/Documentos en el repositorio ~/backup.
Como se puede ver, se creó la copia de seguridad del directorio Documentos. Además, crea una instantánea de la copia de seguridad actual con un nombre único, 4c809a9c en este caso.
Manejar instantáneas
Si ejecutamos otra vez el comando anterior, se creará otra instantánea con un nombre único. Esta vez hará una copia de seguridad bastante más rápida que la copia de seguridad anterior. Podemos seguir agregando los datos en la carpeta y ejecutar la copia de seguridad para crear todas las instantáneas que necesitemos.
Para enumerar las instantáneas disponibles en un repositorio, ejecutaremos:
./restic -r ~/backup snapshots
Como se puede ver, tengo 2 instantáneas, concretamente 4c809a9c y 5f59a8eb.
Para verificar la diferencia entre dos instantáneas escribiremos:
./restic -r ~/backup diff 4c809a9c 5f59a8eb
Como ve, he agregado un nuevo archivo pdf en la copia de seguridad.
Copia de seguridad de archivos
No solo podremos hacer copias de seguridad de directorios enteros. También podremos hacer copias de seguridad de un solo archivo:
./restic -r ~/backup backup ~/Documentos/archivo.txt
Excluir archivos de la copia de seguridad
También es posible excluir algunos archivos o directorios. Por ejemplo, el siguiente comando excluirá todos los archivos de tipo .doc:
./restic -r ~/backup backup --exclude=*.doc ~/Documentos
Podremos colocar también todos los archivos y carpetas que queramos excluir de la copia de seguridad en un archivo y especificar su ruta en el comando de copia de seguridad.
Por ejemplo, crearemos un archivo llamado excluidos:
vi excluidos
Agregaremos los archivos o carpetas que queremos excluir:
*.txt entreunosyceros.zip Vídeos/Películas
Ahora, iniciaremos el proceso de copia de seguridad usando el comando:
./restic -r ~/backup backup --exclude-file=excluidos ~/Documentos
Para obtener más detalles sobre la copia de seguridad, podemos ejecutar:
./restic help backup
Restaurar datos usando Restic
Conociendo la instantánea con la que queremos trabajar, simplemente usaremos el siguiente comando para restaurar los datos de una instantánea:
./restic -r ~/backup restore 4c809a9c --target ~/Documentos
Acabamos de restaurar todos los datos de la instantánea 4c809a9c en el directorio ~/Documentos.
Para restaurar un único archivo desde la instantánea al directorio Documentos, escribiremos:
./restic -r ~/backup restore 4c809a9c --target ~/Documentos archivo.txt
Para obtener más detalles, podemos consultar la sección de ayuda sobre la restauración.
./restic help restore
Ver los datos sin restaurar
Es posible que no queramos restaurar los datos, sino verlos. Podremos explorar la copia de seguridad como un sistema de archivos normal. Primero, crearemos un punto de montaje:
mkdir montaje-copias
Después montaremos nuestro repositorio en el punto de montaje de montaje-copias escribiendo:
./restic -r ~/backup mount montaje-copias/
Ahora, si abrimos nuestro administrador de archivos veremos que nuestro repositorio está montado y podremos explorarlo. Para obtener más detalles podemos consultar la ayuda:
./restic help mount
Esto es solo la punta del programa. Para obtener más información es recomendable consultar la documentación oficial de Restic para un uso más detallado.