Rsync Commad em Linux com 12 exemplos práticos

Rsync Commad em Linux com 12 exemplos práticos

Rsync (sincronização remota) é uma ferramenta de linha de comando para sincronizar arquivos entre dois sistemas baseados em UNIX. O RSYNC também pode ser usado no mesmo sistema para sincronizar arquivos entre dois diretórios. O RSYNC usa um algoritmo delta-transferido para enviar apenas as diferenças entre os arquivos de origem e os arquivos existentes para o destino. O RSYNC usa menos dados na rede para economizar largura de banda.

O RSYNC é normalmente empregado para fazer backup de grandes quantidades de dados ou transferir dados entre dois computadores. O RSYNC suporta a sincronização de arquivos local para local, local para remoção e remoto para o local. No entanto, a sincronização de arquivos remota para remoção não é suportada.

Neste post, veremos alguns usos comuns para a ferramenta de linha de comando rsync.

Sintaxe

rsync [opção…] fonte… [destino] 
  • Aqui FONTE pode ser um diretório local como "/opt/backup" ou um local remoto como "[email protegido]:/opt/remotedir/"
  • Também o DESTINO pode ser referido como um diretório local ou diretório de sistema remoto
  • Fonte e destino podem se referir a um diretório local.
  • Apenas uma fonte ou destino pode ser o controle remoto. Você não pode usar os dois como locais remotos.

Opções de comando rsync

O RSYNC oferece um grande número de opções úteis que controlam todos os aspectos de seu comportamento e o tornam mais flexível para sincronizar arquivos. Abaixo está a lista de algumas opções de comando rsync usadas com frequência:

  • -v, -vv -vvv, --verbose - Esta opção é usada para logs detalhados na saída padrão. O RSYNC padrão funciona silenciosamente. Quanto maior o número de "V" aumenta o nível de registro.
  • -A, -Archive - É a opção mais comum usada com o comando rsync. O modo de arquivo é equivalente às opções -rlptgod . Basicamente, inclui todas as opções necessárias, como recursivamente, preservação de permissões de arquivos, links simbólicos, propriedade de arquivos e registro de data e hora.
  • -Z, - -COMPRESSO - Use esta opção para transferir dados em formato compactado. O que é útil para salvar a largura de banda.
  • -H,-humano-legível - Use esta opção para imprimir todas as saídas em um formato legível pelo homem.
  • --excluir - Use esta opção apenas se precisar remover arquivos no destino, que não existe na fonte.
  • --exclude = padrão - Exclua arquivos do RSYNC correspondendo ao padrão fornecido.
    rsync --exclude '*.jpg 'src/ dest/ 
  • --incluir = padrão - Inclua arquivos no rsync correspondendo ao padrão fornecido.
    rsync --include '*.jpg '--include'*.txt '--exclude'*'src/ dest/ 

Exemplos do RSYNC

Aqui estão 12 exemplos práticos do comando rsync em sistemas Unix/Linux.

  1. Copiar/sincronizar arquivos e diretórios locais para local
  2. O RSYNC permite sincronizar arquivos entre diretórios no sistema local. Por exemplo, eu tenho alguns arquivos de backup na minha máquina local sob o /mnt/backup diretório. Eu quero copiar/sincronizar todos os arquivos para a unidade USB que está montada em /mnt/disk1. Use o seguinte comando para sincronizar todos os arquivos e diretórios de /opt/backup para /mnt /disk1.

    rsync -avhz/opt/backup/mnt/disk1/  enviando backup/ backup/ tecadmin da lista de arquivos incremental.22Mar2022.Backup/Tecadmin do SQL.22Mar2022.alcatrão.GZ Backup/Tecadmin.23Mar2022.Backup/Tecadmin do SQL.23Mar2022.alcatrão.GZ enviou 1.09g bytes recebeu 96 bytes 23.39m bytes/s Tamanho total é 1.47G Speedup é 1.35 
    Copiar/sincronizar arquivos e diretórios entre dois diretórios locais

  3. Copiar/sincronizar arquivos e diretórios locais para remontar
  4. Usando o RSYNC, podemos copiar/sincronizar rapidamente os arquivos de sistemas locais para remotos. Por exemplo, preciso transferir um site para um novo servidor. Este conteúdo do site exigido para ser uma cópia dos sistemas remotos. Use o comando abaixo para copiar todos os arquivos do local /var/www/html Diretório para o controle remoto (192.168.1.100) Sistemas/VAR/www/html diretório.

    rsync -avhz/var/www/html [email protegido]:/var/www/html/  

    O comando acima é útil para um administrador do sistema, que copia arquivos entre dois sistemas regularmente.

  5. Arquivos de copiar/sincronizar e diretórios remotos ao local
  6. O comando rsync também permite a fonte como um diretório remoto, mas o destino deve ser local. Use o diretório de origem do host remoto e o destino deve ser o diretório local. Por exemplo, preciso copiar todos os arquivos de backup armazenados em /backups Diretório no Remote para o diretório local /opt /backups.

    rsync -avhz [email protegido]:/backups/opt/backups  

  7. Usando o RSYNC sobre SSH
  8. O RSYNC se conecta a sistemas remotos usando o daemon rsync diretamente via TCP. Podemos instruir o RSYNC a usar o Secure Shell (SSH) para conectar sistemas remotos, em vez de criar uma conexão TCP.

    Usar -e opção para especificar o shell remoto. O comando abaixo usará o ssh como um shell remoto:

    rsync -AVHZ -E SSH/SRC [email protegido]:/dest/  

    Se o servidor SSH no destino estiver em execução em porta fora do padrão, use este tutorial para conectar o RSYNC sobre a porta fora do padrão.

  9. Ignorar arquivos e diretórios já existe no destino
  10. Use o comando rsync com --ignorar-se existente opção para ignorar todos os arquivos, que já existem no destino. Por exemplo, você deseja agendar um script de backup para copiar todos os arquivos para o disco de backup diariamente. Nesse caso, você não deseja copiar todos os arquivos repetidamente. Esta opção copiará esses arquivos, que não estão disponíveis no destino.

    rsync -avhz --ignore -existente /opt /backups /mnt /disk1  

  11. Atualizar o arquivo apenas se a fonte for mais recente
  12. Usar --atualizar opção para atualizar o arquivo no controle remoto apenas se houver uma versão mais recente for local. O RSYNC criará um arquivo no destino, se não existir. Além disso, o arquivo de atualização no destino de um registro de data e hora local é mais recente que o arquivo do sistema remoto.

    rsync -update -avhz/opt/backups/mnt/disk1/  

  13. Remova o arquivo da fonte após a sincronização
  14. Usar --Remover arquivos de fonte opção para remover um arquivo da fonte após a transferência bem -sucedida para o destino. Por exemplo, você precisa agendar um backup de arquivos de log para o sistema remoto. Além disso, queria registrar o arquivo remoto do sistema local depois de copiar com sucesso para o controle remoto. Isso ajudará a reivindicar espaço em disco.

    RSYNC--REMOVE-SOURCE-FILES -AVHZ/VAR/LOG [email protegido]:/backup/logs/  

  15. Exclua arquivo ou diretório específico com rsync
  16. Você pode especificar um arquivo ou padrão com --exclude = padrão opção para excluir do rsync.

    rsync -avh --exclude '*.zip '--exclude'*.log ' /src [email protegido]: /destin  

  17. Inclua arquivos específicos com rsync
  18. O RSYNC padrão inclui todos os arquivos na árvore do diretório de origem. Agora, você precisa incluir apenas arquivos específicos para sincronizar com o destino.

    Aqui você pode especificar --incluir = padrão para incluir arquivos específicos e excluir todos os arquivos com * .

    rsync -avhz -include '*.jpg '--include'*.txt '--exclude'*' /src [email protegido]: /destin  

  19. Exibir progresso com rsync
  20. Usar --progresso Opção para exibir o progresso durante a transferência de arquivo entre fonte e destino com o comando rsync.

    rsync -avh --progress /src [email protegido]: /destin  

  21. Permissões de arquivo de chnage com rsync
  22. Você pode instruir o RSYNC a alterar o proprietário dos arquivos e os proprietários de grupos no destino. Opção de uso --CHOW = Usuário: Grupo com o RSYNC para alterar a permissão do arquivo.

    rsync -AVH --Chown = Usuário: Group /Src [Email Protected]: /Dest  

    Da mesma forma, você pode usar o -chmod = chmod opção para alterar as permissões de arquivo ou diretório no destino.

    rsync -AVH --chmod = 755 /src [email protegido]: /destin  

  23. RSYNC RUN DRY RUN
  24. Usar --funcionamento a seco opção para executar apenas a corrida a seco. Ele mostrará resultados semelhantes ao comando original, mas nada será atualizado no destino. Basicamente, podemos usar isso para verificar, o que o RSYNC atualizará antes de realmente executá -lo.

    rsync -AVH -DRY -RUN /SRC [email protegido]: /Dest  

Conclusão

O RSYNC é uma grande utilidade para transferir grandes quantidades de dados entre duas máquinas. Você também pode usar o RSYNC para fazer backup de todo o sistema em um local de backup remoto neste artigo. Você aprendeu alguns exemplos práticos de comando rsync neste artigo que são ótimos para tarefas diárias.