▷ Rsync Linux: como usar e exemplos de comando

O uso de comandos no Linux é mais do que natural, pois eles têm sido o coração do Linux por muitos anos, por isso devemos estar atentos à maneira como usamos esses comandos, pois, assim como alguns são práticos para tarefas fundamentais, outros podem ser perigoso se não os administrarmos corretamente. Um dos comandos mais funcionais do Linux é o protocolo rsync, que o Solvetic irá explicar em detalhes ao longo deste tutorial. Vamos ver primeiro o que é rsync.

Atualmente manter uma infraestrutura de qualquer tamanho sem nenhum backup pode ser considerado uma loucura, um disco pode falhar a qualquer momento e você pode perder informações tão valiosas quanto a contabilidade da empresa. Neste post vamos falar sobre como usar o Rsync, uma das melhores ferramentas para backups em sistemas * nix. Veremos desde os exemplos mais básicos aos mais avançados com scripts e exemplos que você pode aplicar em seu ambiente de trabalho. Será um manual para saber como usar o rysnc.

A necessidade de ter a mesma informação em locais diferentes tem sido cada vez mais forte, até porque o nosso espaço de trabalho é variável e queremos ter as nossas ferramentas sempre connosco ou mesmo como medidas de apoio.

O que é rsync?É uma ferramenta de código aberto para transferência de arquivos e diretórios entre um local e outro. Suas vantagens baseiam-se principalmente na compressão da informação a ser enviada, permite que a transferência seja realizada através de um canal SSH e transfere apenas os arquivos e pedaços de arquivos que foram modificados ao invés de transferir todo o arquivo novamente, algo semelhante ao que acontece ao transferir as diferenças em um arquivo sob o controle de versão do Git.

O comando rsync (Remote Sync) é um comando desenvolvido para tarefas de sincronização e cópia de arquivos e diretórios remotamente ou localmente em sistemas Linux ou UNIX.

Com este comando podemos fazer cópias de:

  • Localmente
  • Usando um shell remoto
  • Por meio de um daemon rsync remoto

Rsync usaEntre os diferentes usos do rsync estão os seguintes:

  • Backups automatizados para servidores ou discos remotos.
  • Sincronização remota de arquivos e diretórios.
  • Transferência de arquivo comum.

Vantagens do Rsync

  • É mais rápido que o scp (Secure Copy) porque o rsync usa um protocolo de upload que permite transferir apenas a diferença entre os arquivos, na primeira vez ele transfere o arquivo inteiro pela segunda vez apenas as alterações que possam existir.
  • Ele é projetado para backups remotos.
  • Suporta a cópia de todas as permissões de arquivo, por exemplo, proprietário, grupos de software e link físico.
  • Use menos largura de banda usando compactação ao enviar arquivos.

O Rsync possui uma funcionalidade de transferência delta que permite reduzir a quantidade de dados que são enviados através da rede permitindo apenas o envio das diferenças entre os arquivos fonte e os existentes no destino remoto, por isso o rsync é ideal para backup e duplicação.
O Rsync atua no processo de busca de arquivos a serem transferidos por meio de um algoritmo lqquick checkqq, que se encarrega de buscar os arquivos que sofreram algum tipo de modificação.

Recursos RsyncAlgumas de suas principais características são:

  • Integra funções de opções de exclusão semelhantes ao GNU tar
  • Tem suporte para copiar links Linux, dispositivos, proprietários, grupos e permissões
  • Adicionar um modo de exclusão CVS que permite ignorar os mesmos arquivos que o CVS iria ignorar em sua função
  • Não requer privilégios de superusuário (root)
  • Podemos usar um shell remoto como ssh ou rsh
  • Fornece pipeline de transferências de arquivos para minimizar os custos de latência da rede
  • Suporta daemons rsync autenticados ou anônimos
  • É mais rápido que scp

Veremos como usar os parâmetros rsync e rsync para executar tarefas como rsync copiar apenas novos arquivos ou rsync excluir arquivos de destino.

1. Como usar o rsync

A sintaxe para usar este comando é a seguinte:

 destino de recurso de opções de rsync 
Variáveis ​​RsyncUsando esta sintaxe, podemos adicionar algumas variáveis ​​como:

  • -v: modo detalhado.
  • -r: Esta opção copia os dados recursivamente sem deixar carimbos de data / hora e permissão durante o processo.
  • -a: modo de arquivo que permite a cópia recursiva de arquivos e preserva links simbólicos, permissões de arquivo, propriedade de usuário e grupo e carimbos de data / hora.
  • -z: Esta opção compacta os dados no arquivo.
  • -h: modo legível por humanos, números de saída em um formato legível por humanos.

Agora vamos ver alguns exemplos de como usar este comando. No final do tutorial, o Solvetic fornecerá outros parâmetros para usar o rsync no Linux.

2. Como instalar o rsync

Passo 1
Na maioria dos sistemas atuais, o rsync é instalado por padrão, mas se não estiver, podemos executar o seguinte:

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

PROLONGAR

Passo 2
Em qualquer caso, devemos confirmar a instalação do rsync, em alguns sistemas como o Ubuntu 20 já vem por padrão:

3. Copie arquivos e copie diretórios com rsync


O primeiro uso do rsync é copiar ou sincronizar um arquivo ou diretório localmente. Vamos ver como copiar arquivos rsync, copiar diretórios com rsync e sincronizar dois diretórios com rsync.

Passo 1
Para isso, vamos executar o seguinte

 rsync -zvh "arquivo" "destino" 

Passo 2
Lá podemos ver detalhes como:

  • Dados enviados
  • Quantidade de dados recebidos
  • Velocidade de transferência
  • Tamanho único

etapa 3
Se for o caso de copiar um diretório localmente, iremos executar o seguinte:

 rsync -zvh "diretório" "destino" 

4. Copiar ou sincronizar pastas rsync remotas ou diretório remoto

Passo 1
Podemos copiar ou sincronizar arquivos localmente para um computador remoto, para isso usaremos a seguinte sintaxe:

 rsync -avz file / [email protected]: / destination / 

Passo 2
Sempre que usarmos o IP remoto, devemos inserir a senha de root do referido computador remoto. Agora, se vamos copiar um diretório remoto para nosso servidor local, usaremos a seguinte sintaxe:

 rsync -azvh [email protected]: / destino / diretório / 

5. Rsync SSH como usar


SSH (Secure Shell) é um mecanismo de segurança adicional para transferência de dados, isso é conseguido porque o SSH faz uso de uma conexão segura com criptografia altamente padronizada.

Passo 1
Se vamos copiar um arquivo local para um computador remoto com SSH, devemos usar a opção "-e" com o nome do protocolo que deseja usar:

 rsync -avzhe ssh [email protected]: / destino / diretório 

Passo 2
Para copiar um arquivo local para um servidor remoto, usaremos a seguinte sintaxe:

 rsync -avzhe ssh "arquivo" [email protected]: / destino / 

etapa 3
Podemos validar no diretório remoto se o arquivo ou diretório foi copiado:

PROLONGAR

6. Rsync mostra arquivo ou progresso de transferência de diretório


Este é um método para melhor gerenciamento de transferência, obtido com o parâmetro -progress:
 rsync -avzhe ssh --progress / source [email protected]: / destination 

7. Incluir ou excluir diretórios rsync


As opções -include e -exclude são opções que nos permitem incluir ou excluir arquivos, também nos permitem especificar os arquivos ou diretórios a serem incluídos na sincronização ou excluir arquivos e pastas que não devem ser transferidos.

Seu uso é o seguinte:

 rsync -avze ssh --include 'Letter *' --exclude '*' [email protected]: / destination 

8. Rsync exclui arquivos e diretórios


Caso um arquivo ou diretório não esteja na fonte, mas já esteja disponível no destino, podemos excluir esse arquivo ou diretório durante o processo de sincronização, para isso podemos usar -delete para excluir os elementos que não estão no computador de destino, vamos executar o seguinte:
 rsync -avz --delete [email protected]: / destination 

9. Limite de tamanho do arquivo Rsync


Com o parâmetro -max-size podemos indicar qual é o tamanho máximo dos objetos a serem transferidos com rsync, isso ajuda a controlar o espaço remoto:
 rsync -avzhe ssh --max-size = '300k' / source / [email protected]: / destination 

10. Rsync exclui arquivos de origem se a transferência foi bem-sucedida

Com a variável -remove-source-files é possível que os arquivos que foram sincronizados na fonte sejam eliminados apenas se todo o processo estiver correto, para isso usaremos o seguinte. Vemos que o arquivo de origem foi excluído.

 rsync --remove-source-files -zvh "arquivo" / destino / 

11. Execute o rsync sem afetar os arquivos


Esta é uma opção ideal para pessoas que não conhecem totalmente o poder do rsync, pois mostra o que o comando fará, mas não afeta a origem, isso é feito com o parâmetro -dry-run, por exemplo. Podemos ver que o arquivo ainda está lá.
 rsync --dry-run --remove-source-files -zvh "arquivo" / destino / 

12. Limitar largura de banda rsync


Com o parâmetro -bwlimit será possível definir qual taxa de rede o rsync deve usar para tarefas de sincronização, isso é feito da seguinte maneira:
 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination 

13. Backup com Rsync


Às vezes, devemos fazer backup de certas informações antes de fazer modificações e no caso de um erro na recuperação do Backup, começaremos com um backup de laboratório de uma pasta para outra. Desta forma, criaremos um backup com rsync de forma completa e segura.

Passo 1
Começamos verificando se o rsync está instalado.

 [user @ Solvetic ~] $ which rsync / usr / bin / rsync
Passo 2
Vamos criar 2 pastas para a origem e destino dos arquivos.
 mkdir {backup1, backup2} 
etapa 3
Criamos vários arquivos na pasta backup1, neste caso o tamanho dos arquivos não importa.
 [usuário @ Solvetic ~] $ touch backup1 / arquivo {1… 75} 
Passo 4
O diretório deve ter 75 arquivos. Fazemos backup.
 [User @ Solvetic ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file55 file6 file64 file69 file73 file10 file15 arq2 file24 file29 file33 file38 file42 file47 file51 file56 file60 file65 file7 file74 file11 file16 file20 file25 file3 file34 file39 file43 file48 file52 arquivo57 arquivo61 arquivo66 arquivo70 arquivo75 arquivo12 arquivo17 arquivo21 arquivo26 arquivo26 arquivo30 arquivo35 arquivo4 arquivo44 arquivo49 arquivo53 arquivo58 arquivo62 arquivo67 arquivo71 arquivo8 arquivo13 arquivo18 arquivo22 arquivo27 arquivo31 arquivo36 arquivo40 arquivo45 arquivo5 arquivo54 arquivo59 arquivo63 arquivo68 arquivo72 arquivo9
Etapa 5
Para fazer backup dos arquivos para backup2 usamos. A fonte deve terminar em / caso contrário, copiaria sua pasta e não o conteúdo.
 rsync -r backup1 / backup2 
Etapa 6
SE entrarmos no backup2, podemos ver os 75 arquivos, podemos até verificar que são 2 diretórios idênticos usando diff.
 [usuário @ Solvetic ~] $ diff backup1 backup2 
Etapa 7
No caso de criar um softlink de um arquivo no diretório 1
 ln -s arquivo30 arquivo100 
Etapa 8
Usar rsync com -r não sincronizará o softlink neste caso que usamos. Se olharmos este tempo, teremos o softlink sincronizado.
 rsync -a backup1 / backup2 
ObservaçãoSe não tivermos certeza do que iremos oferecer suporte, podemos usar uma simulação com -n e em conjunto com -v pode ser muito útil.
 [user @ Solvetic ~] $ rsync -anv backup1 / backup2 enviando lista de arquivos incrementais enviados 606 bytes recebidos 12 bytes 1236,00 bytes / s tamanho total é 6 speedup é 0,01 (DRY RUN)

14. Outros parâmetros Rsync


Como mencionamos, estes são alguns dos parâmetros adicionais para usar com rsync no Linux:

Parâmetros Rsync

  • -t, --times: manter modificação de tempo
  • -g, --group: manter grupos
  • -o, --owner: mantém o dono do objeto
  • -B, --block-size = SIZE: força um tamanho de bloco de checksum fixo
  • T, --temp-dir = DIR: este valor cria arquivos temporários no diretório DIR
  • z, --compress: comprime os dados do arquivo durante a transferência
  • -4, --ipv4: usa apenas IPv4
  • -6, --ipv6: usa apenas IPv6

Existem muito mais variáveis, mas são mais do que suficientes para você obter o máximo do rsync no Linux. Vimos como usar o rsync com as opções mais úteis, junto com ferramentas como scripts cron e bash, python teremos tudo o que precisamos para fazer nossos backups sem a necessidade de ferramentas de terceiros.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave