
Entenda como o Rsync facilita a transferência de arquivos entre sistemas Linux, seja localmente ou remotamente, com dicas práticas para otimizar suas operações de sincronização
O Rsync é uma ferramenta poderosa e versátil para transferir e sincronizar arquivos em sistemas Linux. Amplamente utilizado por administradores de sistemas e desenvolvedores, ele é especialmente útil para backups, espelhamento de arquivos e atualizações entre diretórios locais ou servidores remotos. Sua principal vantagem é a eficiência, pois transfere apenas as diferenças entre os arquivos de origem e destino, reduzindo o tráfego de dados. Neste artigo, você aprenderá a instalar e usar o Rsync para realizar transferências locais e remotas de forma prática e segura.
Antes de começar, certifique-se de que:
O Rsync está disponível nos repositórios oficiais da maioria das distribuições Linux e frequentemente já vem pré-instalado. Caso não esteja no seu sistema, você pode instalá-lo com os seguintes comandos:
Instalação em distribuições baseadas em Debian/Ubuntu
sudo apt update
sudo apt install rsync
Instalação no FreeBSD
sudo pkg install rsync
Instalação no Arch Linux
sudo pacman -S rsync
Instalação no Fedora
sudo dnf install rsync
Instalação no CentOS/RHEL
sudo yum install rsync
A estrutura básica do comando Rsync é:
rsync [OPÇÕES] ORIGEM DESTINO
USUÁRIO@HOST:ORIGEM
para transferências remotas via SSH.USUÁRIO@HOST:DESTINO
para transferências remotas via SSH.Aqui estão algumas das opções mais utilizadas no Rsync:
--help
, -h
: Exibe a ajuda do comando--verbose
, -v
: Aumenta a verbosidade--quiet
, -q
: Suprime mensagens que não sejam erros--archive
, -a
: Preserva metadados (modo arquivo)--recursive
, -r
: Copia diretórios recursivamente--update
, -u
: Ignora arquivos mais novos no destino--compress
, -z
: Comprime os dados durante a transferência--delete
: Remove do destino os arquivos ausentes na origem--progress
: Mostra o progresso da transferência--dry-run
, -n
: Simula a execução sem realizar alterações--links
, -l
: Copia links simbólicos como links--copy-links
, -L
: Transforma links simbólicos em arquivos ou diretórios referenciados--perms
, -p
: Preserva permissões--times
, -t
: Preserva horários de modificação--delete-excluded
: Exclui também arquivos excluídos dos diretórios de destino--backup
, -b
: Faz backups (veja --suffix
e --backup-dir
)--backup-dir=DIR
: Faz backups em uma hierarquia baseada em DIR--max-size=TAMANHO
: Não transfere arquivos maiores que TAMANHO--min-size=TAMANHO
: Não transfere arquivos menores que TAMANHO--partial
: Mantém arquivos de transferência incompletos--exclude=PADRÃO
: Exclui arquivos que correspondem ao PADRÃO--include=PADRÃO
: Não exclui arquivos que correspondem ao PADRÃO--rsh=COMANDO
, -e
: Especifica o shell remoto a usar--human-readable
, -h
: Mostra números em formato legível por humanos--ipv4
, -4
: Prefere IPv4--ipv6
, -6
: Prefere IPv6Essas opções podem ser combinadas para atender às suas necessidades específicas.
Crie um diretório de teste:
mkdir rsync-test
cd rsync-test
Crie três arquivos de exemplo:
touch file1 file2 file3
Copie os arquivos para um novo diretório chamado dest
:
mkdir dest
rsync file1 file2 file3 dest/
Verifique se os arquivos foram copiados:
ls dest/
Sua saída deve ser semelhante a:
file1
file2
file3
Para copiar diretórios inteiros, use a flag -a
, que preserva atributos como permissões e horários:
rsync -a dest/ dest-copy/
O /
ao final do diretório indica que apenas o conteúdo será copiado. Sem ele, o Rsync copia o diretório inteiro.
Use a opção --exclude
para ignorar itens específicos durante a cópia:
rsync -a --exclude 'file2' --exclude 'dest*' . output/
Esse comando copia todos os arquivos e diretórios, exceto aqueles que correspondem aos padrões especificados.
Para sincronizar seus dados com um servidor remoto via SSH, utilize o seguinte comando:
rsync -hazvP --delete . usuario@192.0.2.1:/caminho/destino
Explicação das opções:
-h
: Mostra números em formato legível por humanos.-a
: Preserva metadados como permissões e horários.-z
: Comprime os dados durante a transferência.-v
: Habilita saída detalhada.-P
: Exibe progresso e permite retomar transferências interrompidas.--delete
: Remove do destino os arquivos ausentes na origem.Após a execução, você pode verificar os arquivos sincronizados conectando-se ao servidor remoto via SSH:
ssh usuario@192.0.2.1
ls /caminho/destino
A opção --delete
, embora útil, pode ser perigosa, pois remove permanentemente arquivos do destino que não existem mais na origem. Para evitar problemas, sempre execute uma simulação antes:
rsync -a --delete --dry-run ORIGEM DESTINO
Isso permite revisar as alterações antes que sejam aplicadas.
A compressão pode ser útil para reduzir o tempo de transferência, especialmente em conexões lentas. Use a opção -z
para ativar a compressão:
rsync -azvP ORIGEM DESTINO
Para visualizar o progresso da transferência, use a opção -P
:
rsync -avzP ORIGEM DESTINO
Para excluir arquivos ou diretórios específicos, use a opção --exclude
. Por exemplo, para excluir todos os arquivos .txt
:
rsync -a --exclude '*.txt' ORIGEM DESTINO
Para fazer backups antes de substituir arquivos no destino, use a opção --backup
combinada com --backup-dir
:
rsync -a --backup --backup-dir=/caminho/para/backups ORIGEM DESTINO
Neste artigo, você aprendeu como instalar e usar o Rsync para transferir e sincronizar arquivos localmente ou remotamente em sistemas Linux. Exploramos as opções mais comuns do comando, como exclusão seletiva (--exclude
) e compressão (--compress
). O Rsync é uma ferramenta indispensável para quem busca eficiência na gestão de dados, mas exige cuidado ao usar opções como --delete
. Sempre revise seus comandos antes da execução final para evitar perdas acidentais de dados.
Pergunta e respostas frequentes sobre o conteúdo.
Rsync é uma ferramenta para transferir e sincronizar arquivos em sistemas Linux.
Use o comando 'sudo apt install rsync' para instalar o Rsync no Ubuntu.
A sintaxe básica é 'rsync [OPÇÕES] ORIGEM DESTINO'.
Use o comando 'rsync ORIGEM DESTINO' para copiar arquivos localmente.
Use a opção '--exclude' seguida do padrão do arquivo a ser excluído.
A opção '-a' preserva metadados e copia diretórios recursivamente.
Use o comando 'rsync -e ssh ORIGEM usuario@servidor:DESTINO'.
Remove arquivos do destino que não existem mais na origem.
Use a opção '-P' ou '--progress' para exibir o progresso.
Use a opção '-z' para ativar a compressão.
Use a opção '--dry-run' para simular a execução.
Cria backups antes de substituir arquivos no destino.
Use a opção '-l' para copiar links simbólicos como links.
Use a opção '-p' para preservar permissões.
Use a opção '--max-size=TAMANHO' para excluir arquivos maiores que o tamanho especificado.
Use a opção '-u' para ignorar arquivos mais novos no destino.
Use a opção '-e' ou '--rsh=COMANDO' para especificar o shell remoto.
Adicione uma barra '/' ao final do diretório de origem.
Use a opção '--backup-dir=DIR' para especificar o diretório de backups.
Use a opção '--exclude=PADRÃO' para excluir arquivos que correspondem ao padrão.
Especialista linux, desenvolvedor web full-stack, PHP no sangue, graduando em Direito, pai da Lais e esposo da Simone