Skip to main content

Backup com Restic + Rclone

Vamos configurar uma solução de backup utilizando Restic e Rclone.

Restic é uma ferramenta de backup eficiente e segura, com recursos como encriptação de dados e armazenamento incremental, o que significa que apenas os dados que mudaram são enviados em cada backup.

Instalando as Ferramentas

Certifique-se de que as seguintes ferramentas estão instaladas:

  • restic: ferramenta de backup rápida e segura.
  • rclone: ferramenta de linha de comando para gerenciamento de arquivos na nuvem.
  • libsecret-tools: ferramenta para armazenar e recuperar senhas.

Para instalar no Ubuntu, execute:

sudo apt install restic rclone libsecret-tools

As ferramentas a serem utilizadas são Restic e Rclone.

Para gerenciar credenciais no Windows, use o Microsoft-Credentialmanager, o sistema integrado para gerenciar credenciais de usuário.

Criando a API Key

Acesse a lista de api keys e crie uma API key se ainda não tiver uma. Anote o ID e o Secret para os próximos passos.

Configurando o Rclone

Siga as instruções disponíveis para configurar um remote no Rclone.

Para este tutorial, assumiremos que o remote foi configurado como mgc. Verifique se está funcionando com:

rclone lsd mgc:

Isso listará os buckets existentes. Se não houver nenhum bucket, o comando não exibirá nada, mas a ausência de mensagens de erro indica que está funcionando.

Para criar um bucket, execute:

rclone mkdir mgc:meu-bucket-de-backup

Substitua meu-bucket-de-backup por um nome apropriado. O comando não exibe saída, mas você pode verificar a criação com rclone lsd.

Configurando o Secret Manager

Armazene a senha no Gnome Keyring com:

secret-tool store --label='Password for: restic - Backups done right!' type password application net.restic.restic

Configure o Restic para usar o Gnome Keyring exportando uma variável:

export RESTIC_PASSWORD_COMMAND="secret-tool lookup type password application net.restic.restic"

Abra o Gerenciador de Credenciais do Windows:

Pressione Windows + R, digite control /name Microsoft.CredentialManager, e pressione Enter.

Adicione uma nova credencial genérica:

  • Nome do Internet ou da rede restic-password

  • Nome do usuário: deixe em branco

  • Senha: insira a senha desejada

Clique em "OK" para salvar.

Configure o Restic para usar o Gerenciador de Credenciais do Windows com:

$env:RESTIC_PASSWORD_COMMAND="powershell.exe -Command { (Get-Credential -Credential restic-password).Password | ConvertTo-SecureString -AsPlainText -Force }"

Edite o perfil do PowerShell com:

notepad $PROFILE

Adicione a linha:

$env:RESTIC_PASSWORD_COMMAND="powershell.exe -Command { (Get-Credential -Credential restic-password).Password | ConvertTo-SecureString -AsPlainText -Force }"

Salve e feche o arquivo.

Configurando o Restic

Configure o Restic para usar o backend do Rclone definindo variáveis de ambiente:

export RESTIC_REPOSITORY="rclone:mgc:meu-bucket-de-backup"
export RESTIC_PASSWORD_COMMAND="secret-tool lookup type password application net.restic.restic"
$env:RESTIC_REPOSITORY="rclone:mgc:meu-bucket-de-backup"
$env:RESTIC_PASSWORD_COMMAND="powershell.exe -Command { (Get-Credential -Credential restic-password).Password | ConvertTo-SecureString -AsPlainText -Force }"

Criando um Novo Repositório

Para inicializar o repositório, execute:

restic init

A mensagem exibida confirmará que o repositório foi criado.

Fazendo o Primeiro Backup

Realize o backup da sua pasta de documentos:

restic backup ~/Documents
restic backup C:\Users\<SEU-USUARIO>\Documents

Fazendo um Segundo Backup

Para realizar um segundo backup, execute o mesmo comando:

restic backup ~/Documents
restic backup C:\Users\<SEU-USUARIO>\Documents

O Restic reconhecerá os arquivos não modificados e não os enviará novamente.

Restaurando

Para restaurar um backup, liste os snapshots disponíveis com:

restic snapshots

Para restaurar um snapshot específico:

restic restore --target /tmp/documentos-restaurados 57a760c7

Para montar o repositório e acessar arquivos específicos:

mkdir /tmp/restic-mount

restic mount /tmp/restic-mount

Quando terminar, interrompa o comando com Ctrl + C.

Configurando um Backup Periódico

Configure um cron job com crontab:

crontab -e

Adicione:

RESTIC_REPOSITORY="rclone:mgc:meu-bucket-de-backup"
RESTIC_PASSWORD_COMMAND="secret-tool lookup type password application net.restic.restic"

0 13 * * * run-one restic backup ~/Documents

Configure uma tarefa agendada com o Task Scheduler:

  1. Abra o Task Scheduler (taskschd.msc).

  2. Crie uma nova tarefa básica.

  3. Defina o nome e a periodicidade.

  4. Configure a ação para executar o PowerShell com o comando:

-Command "$env:RESTIC_REPOSITORY='rclone:mgc:meu-bucket-de-backup'; $env:RESTIC_PASSWORD_COMMAND='PowerShell.exe -Command { (Get-Credential -Credential restic-password).Password | ConvertTo-SecureString -AsPlainText -Force }'; restic backup C:\Users\<SEU-USUARIO>\Documents"
  1. Finalize a configuração e teste a tarefa manualmente.

Este guia cobre a instalação, configuração e uso de Restic e Rclone para backups, incluindo a configuração de backups periódicos. Siga os passos para garantir a segurança e a disponibilidade dos seus dados importantes. Lembre-se de testar os procedimentos de restauração periodicamente para garantir que tudo está funcionando como esperado.