Rsync para Linux: sincronizar, copiar e fazer cópias de segurança de ficheiros
9 min de leitura - 24 de maio de 2025

Como utilizar o rsync no Linux para transferências incrementais, sincronizações remotas através de SSH, cópias de segurança agendadas com o cron e como evitar a armadilha da barra de arrastamento.
Rsync para Linux: como sincronizar, copiar e fazer cópias de segurança de ficheiros como um profissional
O Rsync é a ferramenta padrão para copiar ficheiros entre sistemas Linux. É mais rápido do que cp ou scp para qualquer coisa que execute mais de uma vez, recupera de quedas de rede e transfere apenas o que realmente mudou. Esta publicação aborda o que o rsync faz, os sinalizadores que vale a pena conhecer, os exemplos a que recorrerá com mais frequência e como agendá-lo com o cron.
O que é o rsync?
O rsync é um utilitário de linha de comandos para copiar e sincronizar ficheiros entre locais. Funciona localmente, através de SSH para um anfitrião remoto ou em relação a um daemon rsync. A principal diferença em relação a cp ou scp: o rsync compara primeiro a origem e o destino e, em seguida, transfere apenas as diferenças. Num diretório de 100 GB onde 200 MB foram alterados, o rsync transfere 200 MB. cp e scp movem tudo.
Vem incluído em todas as distribuições Linux modernas. Se não estiver presente: apt install rsync ou dnf install rsync.
Porquê usar o rsync em vez do cp ou do scp
Três razões pelas quais o rsync é a melhor opção para qualquer cópia não trivial:
- É incremental. As execuções subsequentes transferem apenas os bytes alterados, não ficheiros inteiros. Para cópias de segurança e espelhos, isso transforma um trabalho que demoraria toda a noite numa tarefa de poucos minutos.
- Resiste a interrupções. Com
--partial, um ficheiro de 50 GB parcialmente transferido retoma a partir do ponto onde parou, em vez de recomeçar do início. - Preserva metadados. O modo de arquivo (
-a) mantém permissões, propriedade, ligações simbólicas e carimbos de data/hora. É essencial para ficheiros de sistema, árvores de código-fonte e qualquer coisa em que os atributos sejam importantes.
Para cópias pontuais de ficheiros pequenos, scp é suficiente. Para qualquer coisa que se repita, que consuma muita largura de banda ou que possa precisar de ser retomada, use o rsync.
Opções comuns do rsync
As opções que irá realmente utilizar:
| Opção | O que faz |
|---|---|
-a | Modo de arquivo. Preserva permissões, propriedade, ligações simbólicas e carimbos de data/hora. Equivalente a -rlptgoD. |
-v | Verbose. Lista os ficheiros que estão a ser transferidos. |
-z | Comprimir durante a transferência. Útil em ligações lentas ou dispendiosas, menos útil em LAN ou para conteúdo já comprimido. |
-P | Combina --partial e --progress. Retoma transferências interrompidas, mostra o progresso em tempo real. |
--delete | Apaga ficheiros no destino que não existem na origem. Necessário para um espelho verdadeiro. |
--exclude | Ignora ficheiros que correspondam a um padrão. |
--exclude-from=FILE | Lê padrões de exclusão de um ficheiro. Mais simples do que encadear várias --exclude opções. |
--dry-run | Mostrar o que aconteceria sem transferir nada. |
--bwlimit=KBPS | Limitar o uso de largura de banda em kilobytes por segundo. Útil para backups executados durante o horário comercial. |
--checksum | Comparar ficheiros por checksum em vez de tamanho e data de modificação. Mais lento, mas deteta casos extremos. |
-e ssh | Utilize SSH para a transferência. Implícito na maioria das instalações modernas. |
O comportamento padrão compara o tamanho do ficheiro e a data de modificação, o que é rápido e quase sempre correto. Mude para --checksum se um processo de implementação reescrever os carimbos de data/hora sem alterar o conteúdo, ou se suspeitar de corrupção ao nível do bit.
Exemplos de Rsync
Copiar um diretório localmente:
rsync -av /source/path/ /destination/path/Sincronizar com um servidor remoto via SSH:
rsync -avz /local/dir/ user@remote:/remote/dir/Fazer um teste antes de realizar qualquer ação destrutiva:
rsync -avz --dry-run /local/dir/ user@remote:/dir/Espelhar dois diretórios, incluindo eliminações no destino:
rsync -av --delete /source/ /destination/Excluir logs e um diretório temporário:
rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/Retomar uma transferência de grandes dimensões que possa ser interrompida:
rsync -avP user@remote:/backups/big.img /local/Se a sessão SSH cair, execute o mesmo comando novamente. Com -P, o rsync retoma de onde parou, em vez de começar do zero.
Limite a largura de banda a 50 MB/s para um backup fora do horário de pico, para que não sature a ligação de subida:
rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/A armadilha da barra final
O erro mais comum no rsync:
rsync -av /source /destination/ # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/ # copies the CONTENTS of /source into /destinationUma barra final na fonte significa «tudo dentro deste diretório». A ausência de barra final significa «este diretório em si». Execute com --dry-run primeiro se não tiver a certeza, especialmente quando combinado com --delete.
Automatizar o rsync com o cron
Para backups agendados, são necessárias três coisas:
Acesso SSH sem palavra-passe ao destino. As tarefas cron não podem digitar palavras-passe. Gerar uma chave e copiá-la para o host de backup:
ssh-keygen -t ed25519 ssh-copy-id user@backup-hostUm script, não uma linha única no crontab. Mais fácil de testar, mais fácil de registar:
#!/bin/bash LOG=/var/log/rsync-backup.log rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1Torne-o executável com
chmod +x.Uma entrada no cron para o executar. Edite com
crontab -e:0 2 * * * /usr/local/bin/rsync-backup.shIsso executa o script todas as noites às 02:00.
Duas melhorias que vale a pena fazer em produção: envolva o script em flock para que uma tarefa de longa duração não se sobreponha à execução da noite seguinte, e canalize a saída através de logger para que as falhas sejam registadas no diário do sistema, onde o sistema de monitorização as pode detetar.
Considerações finais
O rsync é uma das poucas ferramentas Linux em que o tempo gasto a aprender os sinalizadores compensa quase imediatamente. Os pontos principais:
- As transferências incrementais e o suporte à retomada fazem do rsync a escolha certa para qualquer coisa que execute mais de uma vez
-apara o modo de arquivo,-zpara compressão,-Ppara retomada e progresso,--deletepara espelhos verdadeiros- Preste atenção à barra final no caminho de origem, especialmente com
--delete - Combine-o com o cron e chaves SSH para backups agendados sem intervenção manual
Para tarefas de backup de grande porte que transferem dados entre instalações, executar o rsync num VPS com largura de banda ilimitada significa que as janelas de backup não são limitadas por restrições de transferência.

Como alojar modelos de IA da Ollama em servidores dedicados
Saiba como alojar modelos de IA da Ollama em servidores dedicados para manter a segurança dos dados, garantir a escalabilidade e melhorar o desempenho.
5 min de leitura - 8 de setembro de 2025
Como instalar e utilizar o Redis num VPS
9 min de leitura - 7 de janeiro de 2026