Idiomas: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Índice / Artigos / Como usar o rsync para fazer cópias de segurança

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.

Um comando rsync típico, com as opções -arvz, uma My-Source-Directory e uma My-Remote-Directory num servidor
Um comando rsync típico, com as opções -arvz, uma My-Source-Directory e uma My-Remote-Directory num servidor

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.

Usar o rsync no Windows 10 com o WSL
Usar o rsync no Windows 10 com o WSL

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.

Usar o rsync para copiar ficheiros do ambiente de trabalho do meu Windows 10 para um servidor Debian GNU/Linux por SSH (com o WSL)
Usar o rsync para copiar ficheiros do ambiente de trabalho do meu Windows 10 para um servidor Debian GNU/Linux por SSH (com o WSL)

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.

Depois de acrescentar a foto da Via Láctea aos meus ficheiros de exemplo, volto a executar o rsync para transferir os ficheiros de forma incremental, copiando apenas o ficheiro novo
Depois de acrescentar a foto da Via Láctea aos meus ficheiros de exemplo, volto a executar o rsync para transferir os ficheiros de forma incremental, copiando apenas o ficheiro novo

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!

Formatos legíveis por máquinas desta página