Como usar o Rsync para sincronizar arquivos novos ou alterados/modificados no Linux
Como administrador de sistema ou usuário avançado do Linux, você provavelmente já deve ter se deparado ou até mesmo usado em diversas ocasiões a versátil ferramenta Linux Rsync, que permite aos usuários copiar ou sincronizar arquivos de forma rápida, local e remotamente. É também uma ótima ferramenta popularmente usada para operações de backup e espelhamento.
Algumas de suas características e vantagens eminentes incluem; é excepcionalmente versátil porque pode copiar localmente, de/para um shell remoto ou rsync remoto, também é extremamente flexível, permitindo aos usuários especificar qualquer número de arquivos para copiar.
Leitura sugerida: 10 exemplos práticos de comando Rsync no Linux
Além disso, permite a cópia de links, dispositivos, proprietário de arquivo ou diretório, grupos e permissões. Ele também oferece suporte ao uso sem privilégios de root, juntamente com muitos mais.
Um diferencial imperativo do rsync em comparação com outros comandos de manipulação de arquivos no Linux é o uso do protocolo de atualização remota, para transferir apenas a diferença entre arquivos ou conteúdo de diretório.
Portanto, neste artigo, examinaremos como o rsync pode nos ajudar apenas a sincronizar arquivos novos ou alterados ou conteúdo de diretório ao fazer backups e muito mais no Linux.
Para começar, você precisa lembrar que a forma convencional e mais simples de usar o rsync é a seguinte:
rsync options source destination
Dito isto, vamos mergulhar em alguns exemplos para descobrir como o conceito acima realmente funciona.
Sincronizando arquivos localmente usando Rsync
Usando o comando abaixo, posso copiar arquivos do meu diretório Documents para o diretório /tmp/documents localmente:
rsync -av Documents/* /tmp/documents
No comando acima, a opção:
-a
– significa modo de arquivo-v
– significa detalhado, mostrando detalhes das operações em andamento
Por padrão, rsync apenas copia arquivos novos ou alterados de uma origem para o destino. Quando adiciono um novo arquivo em meu diretório Documentos, é isso que acontece após executar o mesmo comando uma segunda vez:
rsync -av Documents/* /tmp/documents
Como você pode observar e perceber na saída do comando, apenas o novo arquivo é copiado para o diretório de destino.
Leitura sugerida: Como sincronizar dois servidores Web/sites Apache usando Rsync
A opção --update
ou -u
permite que rsync pule arquivos que ainda são novos no diretório de destino, e uma opção importante, --dry-run
ou -n
nos permite executar uma operação de teste sem fazer nenhuma alteração. Ele nos mostra quais arquivos devem ser copiados.
rsync -aunv Documents/* /tmp/documents
Depois de executar um teste, podemos eliminar o -n
e realizar uma operação real:
rsync -auv Documents/* /tmp/documents
Sincronizando arquivos do Linux local para o remoto
No exemplo abaixo, estou copiando arquivos da minha máquina local para um servidor remoto com o endereço IP – 10.42.1.5. Para sincronizar apenas arquivos novos na máquina local, que não existem na máquina remota, podemos incluir a opção --ignore-existente
:
rsync -av --ignore-existing Documents/* [email :~/all/
Posteriormente, para sincronizar apenas os arquivos atualizados ou modificados na máquina remota que foram alterados na máquina local, podemos realizar uma simulação antes de copiar os arquivos conforme abaixo:
rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/
Para atualizar arquivos existentes e evitar a criação de novos arquivos no destino, utilizamos a opção --existente
.
Você pode percorrer a página man rsync
para descobrir opções adicionais úteis para uso avançado, como mencionei anteriormente, rsync é uma ferramenta Linux muito poderosa e versátil, e muitos sistemas Administradores e usuários avançados do Linux sabem como isso é vantajoso.
Mais importante ainda, você também pode compartilhar sua opinião sobre os exemplos que abordamos aqui ou, melhor ainda, oferecer-nos dicas valiosas sobre como usar esta ferramenta vital de linha de comando por meio da seção de comentários abaixo.