O que é rsync?
Outra ferramenta essencial para copiar dados entre diferentes hosts é o rsync, que significa sincronização remota (remote synchronization). Embora semelhante ao scp, o rsync possui uma diferença fundamental que o torna incrivelmente eficiente. Ele usa um algoritmo de transferência delta que verifica inteligentemente o destino em busca de dados existentes e transfere apenas as partes dos arquivos que foram alteradas.
Por exemplo, se a transferência de um arquivo grande for interrompida, o rsync pode retomar a cópia, transferindo apenas as partes restantes do arquivo em vez de recomeçar do zero. Isso o torna uma escolha robusta para conexões de rede instáveis.
Principais Recursos do rsync
A eficiência do rsync vem de suas otimizações inteligentes. Ele verifica a integridade do arquivo usando somas de verificação (checksums) para garantir que os dados copiados não sejam corrompidos durante a transferência. Esses recursos oferecem flexibilidade significativa, tornando o rsync uma ferramenta ideal para:
- Sincronização de diretórios (tanto remota quanto local)
- Criação de backups incrementais de dados
- Manuseio eficiente de grandes transferências de dados
Opções Comuns do rsync
Você pode modificar o comportamento do comando rsync com várias opções. Algumas das mais usadas incluem:
-v: Saída detalhada (verbose), mostrando quais arquivos estão sendo transferidos.-r: Recursivo, necessário para copiar diretórios inteiros.-h: Saída legível por humanos (human-readable), exibindo números em um formato mais compreensível (ex: KB, MB).-z: Comprime os dados do arquivo durante a transferência, o que é ótimo para conexões lentas.-a: Modo de arquivo (archive), um atalho conveniente que combina várias opções (-rlptgoD) para preservar permissões, propriedade e carimbos de data/hora.
Exemplos de Uso do rsync
Sincronizar Arquivos no Mesmo Host
Você pode usar o rsync para sincronizar dois diretórios em sua máquina local. Isso é útil para criar backups locais.
rsync -avh /meu/diretorio/local/um/ /meu/diretorio/local/dois/
Sincronizar Arquivos de um Host Remoto para um Host Local
Para puxar arquivos de um servidor remoto para sua máquina local, especifique a origem remota primeiro.
rsync -avh usuario@hostremoto.com:/diretorio/remoto/ /diretorio/local/
Sincronizar Arquivos de um Host Local para um Host Remoto
Para enviar arquivos de sua máquina local para um servidor remoto, especifique a origem local primeiro.
rsync -avh /diretorio/local/ usuario@hostremoto.com:/diretorio/remoto/