Como usar o rsync para fazer cópias de segurança
Uma explicação de uma poderosa ferramenta de transferência de ficheiros
- Publicado
- Atualizado
- (criado )
- Escrito por
- Willem L. Middelkoop
- Temas
- Liberdade · SSH · Windows · dados · tutorial · linux · redes · servidor
- Versão humana deste artigo
- https://willem.com/pt/2020-10-30_como-usar-o-rsync-para-fazer-copias-de-seguranca/
- English
- How to use rsync to make backups
- Nederlands
- Hoe rsync te gebruiken voor backups
- Deutsch
- Wie man rsync für Backups verwendet
- Español
- Cómo usar rsync para hacer copias de seguridad
- Français
- Utiliser rsync pour faire des sauvegardes
- Italiano
- Come usare rsync per fare i backup
- Papiamentu
- Kon usa rsync pa hasi backup
- Frysk
- Hoe rsync te brûken foar backups
- Idiomas
- Traduzido do original em inglês por um modelo de linguagem em duas passagens (tradução e revisão) com um glossário e um corretor ortográfico; ainda não revisto por um falante nativo.
Resumo
É muito importante fazer cópias de segurança dos teus dados, porque nunca sabes quando o desastre acontece! Uma ferramenta poderosa e multiplataforma que te ajuda a fazê-lo é o 'rsync'. Neste artigo explico porque é que o rsync é útil e como o podes usar para configurar as tuas próprias cópias de segurança.
Texto completo
Rsync
Desde que foi criado, em 1996 (por Andrew Tridgell e Paul Mackerras), o rsync tornou-se um utilitário padrão, disponível nas distribuições GNU/Linux mais populares, no Apple macOS, no FreeBSD, no NetBSD, no OpenBSD e (através do Cygwin ou do WSL) no Windows.
Principais características
O rsync costuma ser usado para sincronizar ficheiros e pastas entre dois computadores diferentes. Pode usar SSH para se ligar a outro computador e transferir ficheiros. Além de computadores remotos, podes usar o rsync para sincronizar com discos rígidos externos e com unidades de armazenamento em rede (NAS). O rsync é popular porque:
- Está licenciado sob a GNU General Public License, o que o torna software livre; livre tanto no sentido de "liberdade de expressão" como de "cerveja grátis"
- O algoritmo do rsync é um tipo de codificação delta, o que significa que minimiza o tráfego de dados / rede, pois só copia as partes dos ficheiros que mudaram. Além disso, os dados podem ser comprimidos para otimizar ainda mais o tráfego da transferência.
- Consegue retomar transferências interrompidas através da verificação de somas de controlo. Isto permite ao rsync detetar erros ao copiar um ficheiro de um lado para o outro. Se dois ficheiros diferirem em apenas um bit, as suas somas de controlo serão diferentes. A verificação de somas de controlo é uma forma eficiente de confirmar que todos os bytes chegaram bem ao destino.
Instalar o rsync
Se usas GNU/Linux, *BSD ou Apple macOS, provavelmente já tens o rsync instalado. Se usas Windows, podes ver o Subsistema do Windows para Linux ou WSL para teres acesso a todas as ferramentas padrão do GNU/Linux. Em alternativa ao WSL, podes usar o Cygwin para instalar no Windows a grande coleção de ferramentas GNU e de código aberto.
Utilização típica do rsync
O rsync usa-se a partir da linha de comandos, ou terminal. Executas o comando 'rsync' seguido de opções (facultativas), um caminho de origem e um caminho de destino.

Com as opções -arvz configuras o rsync para:
- a: modo "archive" (arquivo), que preserva as permissões e as datas de criação e de última atualização
- r: modo "recursive" (recursivo), que permite ao rsync sincronizar recursivamente as subpastas dentro das pastas de origem/destino
- v: "verbose" (detalhado) ativa uma saída mais detalhada na consola, permitindo-te acompanhar o progresso linha a linha
- z: "compress" (comprimir) ativa a compressão dos dados enquanto são enviados para a máquina de destino, o que reduz a quantidade de dados transmitidos, útil em ligações lentas ou com consumo limitado
- --delete: faz com que os ficheiros sejam removidos do lado remoto se forem removidos da pasta de origem. Deves ter cuidado com esta opção!
Existem muitas outras opções que te permitem adaptar o comportamento do rsync às tuas necessidades. Consulta a página man do rsync para veres a lista completa de todas as opções.
Como usar o rsync para guardar ficheiros
No exemplo seguinte vou usar o rsync para copiar uma pasta ("Sample-Files") do ambiente de trabalho do meu Windows 10 para um servidor remoto. Uso o WSL no Windows para ter um ambiente Debian_GNU/Linux a funcionar no meu Windows Terminal.

Deixa-me explicar o comando que uso:
- rsync é o nome do programa que uso
- -arvz são as opções que configuram o rsync para fazer uma cópia arquivada, incluindo subpastas, e transferir os dados com compressão
- /mnt/c/Users/mail/Desktop/Sample-files/ é o caminho da pasta de origem, visto através da estrutura de pastas do WSL. Aponta para o meu ambiente de trabalho do Windows (que está na unidade C:)
- willem @ store.willem.com:./Backup é o destino, que deves ler como "utilizador willem no servidor 'store.willem.com'" e, "nesse servidor", usar a pasta "Backup" dentro da pasta pessoal "./" do "utilizador willem".
Se executares este comando pela primeira vez, é mostrada a impressão digital criptográfica do servidor remoto. Serve para garantir que estás a falar com o teu servidor. Isto impede que hackers se façam passar pelo teu servidor sem que dês por isso (a impressão digital é única para o teu servidor). Se o rsync detetar uma alteração nesta impressão digital, recusa-se a transferir ficheiros. Isto é crítico, porque copiar as tuas cópias de segurança para um destino remoto qualquer seria um risco potencial de fuga de dados!
É-te pedida a palavra-passe se te ligares por SSH sem autenticação por chave. Não há problema se pretendes executar a transferência manualmente, mas se pretendes automatizar as transferências, talvez queiras configurar a autenticação por chave (com o prático comando "ssh-copy-id"). O teu computador poderá então iniciar sessão na máquina remota em segurança, sem precisar de introduzir a palavra-passe manualmente.

Se o rsync conseguir ligar-se com sucesso, vai então determinar que ficheiros precisam de ser transferidos. Se tiveres definido a opção "-v", vês o progresso linha a linha. Quando a transferência terminar, o rsync sai com um resumo.
Transferências incrementais
O truque de magia do rsync é suportar totalmente transferências incrementais de origem, sem nada extra. Se tiveres alguns ficheiros novos e voltares a executar o mesmo comando rsync, só transfere os ficheiros que precisam de ser transferidos.

Podes ver na captura de ecrã que o rsync detetou automaticamente o novo ficheiro. Só transferiu esse ficheiro para o servidor remoto. Poupa largura de banda, tempo e capacidade de processamento. Funciona com ficheiros novos e com ficheiros atualizados.
Opcionalmente, podes usar a opção "--delete" para propagar as eliminações locais para a pasta de destino, criando uma imagem espelhada perfeita da estrutura de ficheiros local. Para fins de cópia de segurança, podes pensar em dispensá-la (podes apagar ficheiros sem querer).
Automatizar transferências e cópias de segurança
Como o rsync é "apenas um comando de terminal", podes usá-lo facilmente nos teus próprios scripts. Pensa num script como um conjunto de comandos rsync que formam uma série de ligações de "origem" e "destino" entre os teus ficheiros e os respetivos locais de cópia de segurança.
Podes agendar o teu script para ser executado automaticamente num determinado dia da semana e a uma determinada hora do dia. Em GNU/Linux, *BSD e macOS podes usar o cron para isso. No Windows podes usar a aplicação "Agendador de Tarefas".
Conclusão
Com o rsync podes transferir ficheiros do teu computador para outro sistema de forma eficiente, segura e incremental. Pode ser uma ferramenta crucial no teu plano de cópias de segurança.
É gratuito e está amplamente disponível. O seu desempenho e a sua fiabilidade estão bem comprovados. Não há mesmo desculpa para não configurares corretamente as tuas cópias de segurança!