Como copiar apenas o que mudou, simular antes de executar e deixar o backup rodando sozinho todos os dias.
Fala pessoal, tudo bem?
Hoje o post é rápido e muito útil. Seja no laboratório ou em um servidor de verdade, mais cedo ou mais tarde vamos precisar copiar arquivos de um lugar para outro — ou simplesmente garantir que temos uma cópia de segurança. Para isso, existe uma ferramenta simples e poderosa que já vem na maioria das distribuições Linux: o rsync.
A grande vantagem dele sobre um simples cp é que ele copia apenas o que mudou. Na primeira execução ele copia tudo, nas próximas só envia as diferenças. Isso economiza tempo e banda — e, em backups recorrentes, faz uma diferença enorme.
1. O comando básico
Se por algum motivo ele não estiver instalado:
sudo apt install rsync -y
Agora, o comando que você mais vai usar:
rsync -avh --progress /home/usuario/projetos/ /backup/projetos/
- -a (archive) — copia tudo de forma recursiva e preserva permissões, donos, datas e links simbólicos. É o modo ideal para backup.
- -v (verbose) — mostra o que está sendo copiado.
- -h (human-readable) — exibe os tamanhos em formato legível (KB, MB, GB).
- --progress — mostra o andamento de cada arquivo.
2. Cuidado com a barra no final
Este é o detalhe que mais confunde quem está começando. A barra (/) no final do caminho de origem muda o resultado:
# COM barra: copia o CONTEÚDO da pasta
rsync -avh /home/usuario/projetos/ /backup/
# SEM barra: copia a PASTA inteira (cria /backup/projetos)
rsync -avh /home/usuario/projetos /backup/
Na dúvida, use o teste do próximo passo antes de executar de verdade.
3. Simular antes de executar
Antes de rodar um backup importante, podemos pedir ao rsync para apenas simular, mostrando o que ele faria sem alterar nada:
rsync -avh --dry-run /home/usuario/projetos/ /backup/projetos/
O --dry-run (ou apenas -n) é o seu seguro de vida. Fica a dica de sempre usá-lo quando estiver testando um comando novo.
4. Enviando para outro servidor
O rsync funciona por cima do SSH, então copiar para outra máquina é tão simples quanto copiar localmente. Se você já tem as chaves e os atalhos do SSH configurados, tudo fica ainda mais fácil.
Primeiro, vamos garantir que a pasta de destino existe no servidor (o rsync cria apenas o último nível da pasta):
ssh kub-node1 "mkdir -p ~/backup"
E agora o envio:
rsync -avh --progress /home/usuario/projetos/ kub-node1:~/backup/projetos/
O formato é servidor:caminho. Para restaurar, basta inverter origem e destino:
rsync -avh kub-node1:~/backup/projetos/ /home/usuario/projetos/
5. Espelhando e ignorando arquivos
Duas opções muito usadas em backup:
- --delete — apaga no destino o que foi apagado na origem, deixando as duas pastas idênticas (espelho). Sem ele, arquivos removidos na origem continuam no backup.
- --exclude — ignora arquivos ou pastas que você não quer copiar.
rsync -avh --delete --exclude='*.log' --exclude='node_modules' /home/usuario/projetos/ kub-node1:~/backup/projetos/
6. Automatizando com script e cron
Backup só é útil se for feito sempre. Vamos criar um script simples chamado backup.sh:
#!/bin/bash
ORIGEM="/home/usuario/projetos/"
DESTINO="kub-node1:~/backup/projetos/"
LOG="/home/usuario/backup-rsync.log"
echo "=== Backup iniciado em $(date) ===" >> "$LOG"
rsync -avh --delete --exclude='*.log' "$ORIGEM" "$DESTINO" >> "$LOG" 2>&1
echo "=== Finalizado em $(date) ===" >> "$LOG"
Dê permissão de execução e teste manualmente:
chmod +x /home/usuario/backup.sh
/home/usuario/backup.sh
Funcionou? Agora vamos agendar com o cron:
crontab -e
Adicione a linha abaixo no final do arquivo:
0 2 * * * /home/usuario/backup.sh
Isso executa o backup todos os dias às 2h da manhã. Os cinco campos são, nesta ordem: minuto, hora, dia do mês, mês e dia da semana.
Para conferir se está rodando, é só olhar o log:
tail -f /home/usuario/backup-rsync.log
Um lembrete sobre backup
Copiar para outra pasta no mesmo disco não é backup de verdade. Se o disco morrer, você perde tudo junto. O ideal é sempre ter uma cópia em outra máquina ou, melhor ainda, em outro local. Uma regra clássica é a 3-2-1: 3 cópias dos dados, em 2 tipos de mídia diferentes, com 1 delas fora do local principal.
Considerações Finais
Hoje vimos como usar o rsync para copiar só o que mudou, simular antes de executar, enviar e restaurar arquivos por SSH e automatizar tudo com um script e o cron. Com poucos comandos você já tem um backup funcional e fácil de manter.
O rsync é uma daquelas ferramentas que parecem simples na superfície e vão ficando cada vez mais úteis conforme você aprofunda. Vale ler a man rsync com calma — tem opções para coisas que você nem imaginava que precisava.
Abs e até a próxima.

Nenhum comentário:
Postar um comentário