Abaixo posto uma tabela com exemplos de uso do comando rsync no Linux.
Para saber o que é rsync clique aqui.
Comando | Explicação | Exemplo Prático |
---|---|---|
rsync -av /origem /destino | Realiza a sincronização de arquivos e diretórios com preservação de permissões, timestamps e recursividade. Usa o modo “verbose” para detalhar o que está sendo copiado. | Sincroniza o diretório /home/user/docs para /mnt/backup/docs , preservando permissões e timestamps. |
rsync -avz /origem /destino | Sincroniza arquivos e diretórios de forma comprimida, útil para transferir dados via rede, como em backups remotos. | Transfere arquivos do diretório /home/user/data para um servidor remoto user@remote:/backup/data , comprimindo os dados para reduzir a largura de banda. |
rsync -av --delete /origem /destino | Sincroniza os diretórios e exclui arquivos no destino que não existem mais na origem. | Sincroniza o diretório /var/www com um servidor remoto e remove arquivos do destino que foram deletados do diretório de origem. |
rsync -av --progress /origem /destino | Exibe o progresso da cópia de arquivos durante a execução. | Realiza uma cópia de um grande diretório, exibindo a barra de progresso para cada arquivo copiado. |
rsync -av --exclude='*.log' /origem /destino | Exclui arquivos com a extensão .log durante a sincronização. | Sincroniza o diretório /var/log para um backup, mas exclui arquivos de log (com extensão .log ) da cópia. |
rsync -av --include='*.jpg' --exclude='*' /origem /destino | Sincroniza apenas arquivos com a extensão .jpg do diretório de origem para o destino. | Faz backup apenas das imagens .jpg do diretório /home/user/pictures para o diretório de backup /mnt/backup/pictures , excluindo todos os outros tipos de arquivos. |
rsync -av --bwlimit=1000 /origem /destino | Limita a largura de banda do rsync , útil para não sobrecarregar a rede. A largura é especificada em KB/s (1.000 KB/s = 1 MB/s). | Realiza um backup de /home/user/data para um servidor remoto, limitando a transferência para 1 MB por segundo, para evitar impactar na rede local. |
rsync -avz -e ssh /origem user@host:/destino | Sincroniza arquivos via SSH, garantindo a segurança da transferência entre a máquina local e um servidor remoto. | Sincroniza os arquivos do diretório /home/user/docs com um servidor remoto acessado via SSH, armazenando os dados em /remote/backup/docs . |
rsync -av --stats /origem /destino | Exibe estatísticas detalhadas após a execução do rsync , como número de arquivos copiados, tempo total e taxa de transferência. | Após realizar um backup completo de arquivos de /home/user/data para /mnt/backup/data , o rsync exibe estatísticas como o número de arquivos copiados e o tempo total de execução. |
rsync -av --dry-run /origem /destino | Simula a operação sem realizar qualquer modificação, útil para verificar quais arquivos seriam copiados ou excluídos. | Antes de realizar a cópia de arquivos críticos do diretório /home/user para o backup /mnt/backup/user , usa-se o --dry-run para verificar se a sincronização ocorrerá corretamente. |
rsync -av --copy-links /origem /destino | Copia links simbólicos como arquivos reais. | Quando o diretório de origem contém links simbólicos, o --copy-links permite que eles sejam copiados como arquivos reais, ao invés de preservar o link simbólico. |
rsync -av --link-dest=/backup/prev /origem /destino | Usado para backups incrementais, cria hard links de arquivos não modificados, economizando espaço. | Realiza um backup incremental dos arquivos no diretório /home/user para /mnt/backup/user , criando hard links para arquivos que não foram alterados desde o último backup em /backup/prev . |
rsync -av --backup --backup-dir=/path/to/backup /origem /destino | Realiza backups de arquivos sobrescritos ou deletados no destino, movendo-os para um diretório específico. | Quando sincroniza o diretório /home/user/docs para /mnt/backup/docs , qualquer arquivo que for sobrescrito ou removido será movido para /mnt/backup/old_files/ . |
rsync -av --size-only /origem /destino | Compara arquivos apenas pelo tamanho, não levando em conta a data ou checksum, e sincroniza arquivos que tiverem tamanho diferente. | Quando você sabe que os arquivos foram modificados por fora, mas não pela data de modificação, usa-se --size-only para garantir que os arquivos com tamanhos diferentes sejam sincronizados. |
**rsync -av --no-perms /origem /destino | Sincroniza arquivos sem preservar permissões de arquivos e diretórios no destino. | Realiza um backup de arquivos do diretório /home/user para /mnt/backup/user , sem preservar permissões e proprietários dos arquivos copiados. |
**rsync -av --ignore-existing /origem /destino | Ignora arquivos que já existem no destino, copiando apenas novos arquivos da origem. | Ao sincronizar /home/user/docs para /mnt/backup/docs , o comando copia apenas os arquivos novos que ainda não existem no destino. Arquivos já existentes não serão copiados novamente. |
**rsync -av --partial /origem /destino | Permite a transferência parcial de arquivos, útil em transferências grandes que podem ser interrompidas e retomar de onde pararam. | Se a transferência de arquivos grandes, como vídeos ou backups de banco de dados, for interrompida, o --partial permite que o rsync continue de onde parou sem recomeçar do início. |
**rsync -av --checksum /origem /destino | Usa checksums para comparar arquivos, ao invés de datas ou tamanhos. Ideal quando há necessidade de verificar a integridade dos arquivos. | Ao transferir dados críticos, como arquivos de um servidor de produção para um servidor de backup, pode-se usar --checksum para garantir que os arquivos sejam copiados apenas se forem alterados. |
**rsync -av --timeout=30 /origem /destino | Define um tempo limite para a conexão, útil quando se transfere dados através de redes lentas ou instáveis. | Para evitar que uma transferência de dados leve muito tempo em uma conexão lenta ou com instabilidade, o --timeout=30 garante que a transferência será interrompida após 30 segundos de inatividade. |
**rsync -av --exclude='*.tmp' --exclude='*.bak' /origem /destino | Exclui múltiplos padrões de arquivos durante a sincronização, no caso arquivos com extensões .tmp e .bak . | Ao sincronizar um diretório de trabalho, como /home/user/project , exclui arquivos temporários e de backup (*.tmp , *.bak ) da cópia para o backup. |
Exemplos Práticos:
- Backup de Diretório com Compressão e Verificação de Progresso:
- Comando:
rsync -avz --progress /home/user/docs /mnt/backup/docs
- Explicação:
Sincroniza o diretório/home/user/docs
para/mnt/backup/docs
, comprime os dados para economizar largura de banda e mostra o progresso de cada arquivo transferido.
- Comando:
- Backup Remoto via SSH com Limite de Largura de Banda:
- Comando:
rsync -avz -e ssh --bwlimit=1000 /home/user/data user@remote:/backup/data
- Explicação:
Realiza um backup do diretório local/home/user/data
para o servidor remotouser@remote:/backup/data
, comprimindo os dados e limitando a largura de banda para 1 MB/s.
- Comando:
- Sincronização com Exclusões Específicas:
- Comando:
rsync -av --exclude='*.log' /var/log /mnt/backup/logs
- Explicação:
Sincroniza o diretório/var/log
, mas exclui todos os arquivos
- Comando: