restic em 4 passos
Backup que ninguém testa não é backup. restic faz snapshots deduplicados e criptografados; rsync ainda serve para espelho simples.
sudo apt install restic -y
export RESTIC_REPOSITORY=/mnt/backup/repo
export RESTIC_PASSWORD='senha-forte'
restic init
restic backup /var/www /etc --exclude /var/www/cache
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --prune
Agendar
# crontab -e
0 3 * * * RESTIC_REPOSITORY=/mnt/backup/repo RESTIC_PASSWORD_FILE=/root/.restic-pass restic backup /var/www
Guarde a senha fora do servidor de produção. Teste restore mensalmente.
Comandos explicados
| Comando | O que faz |
|---|---|
sudo apt install restic -y | Instala o Restic. |
export RESTIC_REPOSITORY=/mnt/backup/repo | Define onde ficam os backups (o repositório). |
export RESTIC_PASSWORD='senha-forte' | Define a senha que criptografa o repositório. No dia a dia, prefira RESTIC_PASSWORD_FILE, para a senha não ficar no histórico do terminal. |
restic init | Cria o repositório criptografado. Só se roda uma vez. |
restic backup /var/www /etc --exclude /var/www/cache | Cria um snapshot dessas duas pastas, ignorando o cache. |
restic snapshots | Lista os snapshots, com identificador, data e caminhos. |
restic forget --keep-daily 7 --keep-weekly 4 --prune | Mantém os últimos 7 snapshots diários e 4 semanais e remove do disco os dados que ninguém mais usa (--prune). |
0 3 * * * no crontab | Executa o backup todo dia às 03:00. |
RESTIC_PASSWORD_FILE=/root/.restic-pass | Lê a senha de um arquivo protegido em vez de escrevê-la na linha. |
Restic ou rsync?
O artigo cita o rsync para espelho simples. Os dois resolvem problemas diferentes:
| Critério | Restic | rsync |
|---|---|---|
| Histórico de versões | sim, cada backup é um snapshot | não, só a cópia mais recente |
| Criptografia | sim, no repositório | não |
| Deduplicação | sim | não |
| Uso típico | backup com retenção e restauração em pontos no tempo | espelho de uma pasta em outro disco ou servidor |
rsync -a --delete /var/www/ /mnt/espelho/www/No rsync, -a preserva permissões, datas e links, e --delete apaga no destino o que já não existe na origem. A barra final em /var/www/ faz copiar o conteúdo da pasta, e não a pasta em si. Cuidado: um arquivo apagado por engano na origem também some do espelho.
Erros comuns
| Mensagem | Causa provável | Solução |
|---|---|---|
wrong password or no key found | A senha informada não corresponde à do repositório. | Confira RESTIC_PASSWORD ou o conteúdo do arquivo de senha. Sem a senha correta, os dados não podem ser recuperados. |
config file already exists | O restic init foi executado em um repositório que já existe. | Não rode o init de novo. Use o backup direto. |
| Falha ao criar o lock do repositório | Um backup anterior travou e deixou o bloqueio. | Confirme que nenhum backup está rodando e use restic unlock. |
| O disco de destino enche | Os snapshots antigos nunca são removidos. | Use forget com --prune e uma política de retenção. |