A-MINHA-ROTINA-DE-BACKUP-COM-RESTIC(1) Manual do Giuliano

NOME

A minha rotina de backup com o restic

· Utilitários · 4 min

DESCRIÇÃO

O restic é um utilitário de backup que garante a integridade dos dados, tendo como principal recurso a habilidade de mantê-los criptografados em um repositório, que é estruturado de forma similar ao que vemos no Git.

Isto é, temos versionamento como a regra, sendo esta a segunda funcionalidade principal, além da já citada criptografia.

Com o versionamento também temos a deduplicação, então, em um repositório restic, um dado é armazenado uma única vez e é apenas referenciado subsequentemente.

E por fim, os repositório também tem suporte a compressão, então, recapitulando, temos um repositório criptografado, deduplicado, versionado e comprimido.

Atualmente, eu tenho a seguinte rotina de backup, uma crontab que invoca o seguinte script:

#!/bin/sh
repositorio="/backup" #caminho do repositório
password_file="/armazem/Sync/senha.txt" #arquivo com a senha
# Com o 'unlock' removemos eventuais travas que existam de um processo anterior do restic
restic --password-file=$password_file -r $repositorio unlock
# Com o 'prune', podamos do repositório eventuais vestígios de dados relacionados a snaphosts que já foram excluídos.
restic --password-file=$password_file -r $repositorio prune
# Aqui definimos a política de retenção do backup, com 7 backups diários, um para cada dia da semana, dois semanais e 1 mensal.
restic --password-file=$password_file -r $repositorio forget --keep-daily 7 --keep-weekly 2 --keep-monthly 1 --keep-tag keep --prune
# Finalmente, realizamos o backup da minha pasta (giuliano) home
restic --exclude-caches --exclude=".cache" --password-file=$password_file -r $repositorio backup /home/giuliano
# E aqui finalizamos fazendo o backup da pasta /armazem, que fica em um outro disco e possui vários arquivos relevantes.
restic --exclude-caches --exclude="backup" --exclude="tv" --exclude="downloads" --exclude="movies" --exclude="local"  --password-file=$password_file -r $repositorio backup /armazem

Para verificar como ficaram os backups eu posso conferir com o seguinte comando

restic --password-file=/armazem/Sync/senha.txt -r /armazem/backup snapshots

Que me retorna a seguinte saída:

repository 6359e57a opened (version 2, compression level auto)
ID        Time                 Host        Tags        Paths
---------------------------------------------------------------------------
dac71fa4  2024-01-18 04:01:32  ryzen                   /home/giuliano
c46518e1  2024-01-18 04:03:45  ryzen                   /armazem
81732621  2024-01-19 04:01:13  ryzen                   /home/giuliano
76412b53  2024-01-19 04:03:29  ryzen                   /armazem
e8754b00  2024-01-20 04:01:16  ryzen                   /home/giuliano
fd999edd  2024-01-20 04:03:53  ryzen                   /armazem
af0037f0  2024-01-21 04:01:24  ryzen                   /home/giuliano
baa4f85b  2024-01-21 04:05:19  ryzen                   /armazem
95f5eecb  2024-01-22 04:00:41  ryzen                   /home/giuliano
bfa109cb  2024-01-22 04:03:38  ryzen                   /armazem
f342549a  2024-01-23 04:01:24  ryzen                   /home/giuliano
bd7d291b  2024-01-23 04:04:26  ryzen                   /armazem
c0d67f5a  2024-01-24 04:01:33  ryzen                   /home/giuliano
961f1829  2024-01-24 04:04:14  ryzen                   /armazem
c41d42dd  2024-01-25 04:01:29  ryzen                   /home/giuliano
ad507348  2024-01-25 04:03:10  ryzen                   /armazem
---------------------------------------------------------------------------
16 snapshots

Em caso de desastre basta executar o seguinte comando para restaurar um backup:

restic --password-file=/armazem/Sync/senha.txt -r /armazem/backup restore b1297a9c --target=/

Onde b1297a9c é o código único do snapshot e os demais parâmetros são o arquivo da senha e o repositório, o target é o raiz, pois, o restic armazena a estrutura de pastas a partir da raiz, então geralmente fará mais sentido restaurar a partir dela mesmo.

Isso é apenas uma demonstração rápida do que o restic pode fazer, ainda cabe ressaltar que ele tem suporte nativo ao rclone, bastando que ambas as ferramentas estejam instaladas, abrindo a possibilidade de utilizar inúmeros provedores na nuvem como “backend”.

Além disso, o restic conta com uma lista considerável de interfaces gráficas e utilitários para facilitarem o seu uso, que podem ser conferidos aqui: https://github.com/rubiojr/awesome-restic

A combinação dessas características faz do restic uma ferramenta robusta e versátil para backup, atendendo tanto a usuários domésticos quanto a ambientes empresariais mais exigentes. Seu suporte extenso a diferentes backends na nuvem, junto com a possibilidade de integração com outras ferramentas, como o rclone, proporciona uma flexibilidade sem precedentes na escolha de como e onde armazenar seus backups.

Encorajo todos os interessados a explorar os recursos disponíveis e a considerar o restic como uma solução de backup. Seja você um entusiasta de tecnologia procurando por uma ferramenta confiável para proteger dados pessoais, ou uma empresa em busca de uma solução de backup eficiente e segura, o restic oferece uma combinação poderosa de simplicidade, flexibilidade e segurança.

Não deixe de conferir a comunidade e os recursos disponíveis para tirar o máximo proveito do restic. A segurança dos seus dados é fundamental, e escolher a ferramenta certa é o primeiro passo para garantir essa segurança em um mundo digital cada vez mais complexo.

VEJA TAMBÉM