Exemplos sobre como usar o RSYNC para backups e sinconizações de dados locais e remotos

Exemplos sobre como usar o RSYNC para backups e sinconizações de dados locais e remotos

O RSYNC é uma ferramenta muito útil que permite que os administradores do sistema Linux sincronizem dados localmente ou com um sistema de arquivos remoto por meio do protocolo SSH ou usando o daemon rsync. Usando rsync é mais conveniente do que simplesmente copiar dados, porque é capaz de identificar e sincronizar apenas as diferenças entre uma fonte e um destino. O programa tem opções para preservar as permissões padrão e estendido do sistema de arquivos, comprimir os dados durante transferências e mais. Veremos os mais usados ​​neste guia.

Neste tutorial, você aprenderá:

  • Como usar o RSYNC para sincronizar dados
  • Como usar o RSYNC com um sistema de arquivos remoto via SSH
  • Como usar o RSYNC com um sistema de arquivos remoto por meio do daemon rsync
  • Como excluir arquivos da sincronização

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição
Programas O aplicativo rsync e opcionalmente o daemon rsync
Outro Não são necessários requisitos especiais para seguir este guia.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

RSYNC - Uso

Vamos começar com o uso básico do RSYNC. Suponha que tenhamos um diretório em nosso sistema de arquivos local e queremos sincronizar seu conteúdo com outro diretório, talvez em um dispositivo USB externo, a fim de criar um backup de nossos arquivos. Por causa do nosso exemplo, nosso diretório de origem será /mnt/dados/fonte, e nosso destino será montado em /run/mídia/egdoc/destino. Nosso destino contém dois arquivos: arquivo1.TXT e File2.TXT, Enquanto o destino está vazio. A primeira vez que corremos rsync Todos os dados são copiados:

O caminho de destino é a última coisa que fornecemos no comando. Se agora listarmos seu conteúdo, podemos ver que agora contém os arquivos de origem:



$ ls/run/mídia/egdoc/destino/-l total 0 -rw-r--r--. 1 egdoc egdoc 0 out 6 19:42 file1.txt -rw-r-r--. 1 egdoc egdoc 0 out 6 19:42 file2.TXT

Os tempos subsequentes que executamos o RSYNC para sincronizar os dois diretórios, apenas novos arquivos e arquivos modificados serão copiados: isso economizará muito tempo e recursos. Vamos verificar: primeiro modificamos o conteúdo do arquivo1.txt dentro do diretório de origem:

$ eco linuxconfig>/mnt/data/fonte/file1.TXT

Então, vamos correr rsync Novamente, assista à saída:

$ rsync -av/mnt/data/fonte//run/mídia/egdoc/destino enviando arquivo de arquivo incremental1.txt enviou 159 bytes recebidos 35 bytes 388.00 bytes/s Tamanho total é 12 aceleração é 0.06

O único arquivo copiado é o que modificamos, file1.TXT.

Crie uma cópia espelhada da fonte para o destino

Por padrão rsync Apenas garante que todos os arquivos dentro do diretório de origem (exceto o especificado como exceções) sejam copiados para o destino: ele não cuida de manter os dois diretórios idênticos e não remove arquivos; Portanto, se queremos criar uma cópia espelhada da fonte no destino, devemos usar o --excluir opção, que causa a remoção de arquivos existentes apenas dentro do destino.

Suponha que criemos um novo arquivo chamado arquivo3.TXT No diretório de destino:

$ touch/run/mídia/egdoc/destino/arquivo3.TXT


O arquivo não existe no diretório de origem, então se executarmos rsync com o --excluir opção, é removido:

$ rsync -av - -delete/mnt/data/fonte//run/mídia/egdoc/destino enviando lista de arquivos incremental de delete 3.TXT ./ enviou 95 bytes recebidos 28 bytes 246.00 bytes/s Tamanho total é 0 aceleração é 0.00 

Como essa sincronização é potencialmente destrutiva, você pode primeiro lançar o rsync com o --funcionamento a seco opção, para fazer o programa exibir as operações que seriam executadas, sem realmente modificar o sistema de arquivos.

Sincronizando arquivos remotamente

Até agora, vimos como usar o RSYNC para sincronizar dois sistemas de arquivos locais. O programa também pode ser usado para sincronizar arquivos remotamente, usando um shell remoto como rsh ou ssh, ou o rsync Daemon. Vamos explorar os dois métodos.

Executando o rsync através do SSH

Para o nosso exemplo, ainda estaremos usando o mesmo diretório de origem que usamos nos exemplos anteriores, mas como destino, usaremos um diretório em uma máquina remota com IP 192.168.122.32. Anteriormente, configurei um servidor OpenSSH com um login baseado em chave na máquina, portanto não precisarei fornecer uma senha para acessá-la.

Como podemos correrrsync através da ssh? Primeiro de tudo, para que uma sincronização remota funcione, o RSYNC deve ser instalado na fonte e na máquina remota. O RSYNC tenta entrar em contato com um sistema de arquivos remoto usando um programa de shell remoto sempre que o destino ou caminho de origem contém um : personagem. Nas versões modernas do rsync ssh é usado por padrão; Para usar outra concha remota ou para declarar a concha explicitamente, podemos usar o -e opção e forneça como argumento. Supondo que nosso diretório de destino na máquina remota seja /Home/Egdoc/Destino, Podemos correr:

$ rsync -av -e ssh/mnt/dados/fonte/[email protected]:/Home/Egdoc/Destino

Observe que especificamos o destino no formulário @:/path/to/diretório.

Entrando em contato com uma máquina remota através do daemon rsync

O outro método que podemos usar para sincronizar arquivos com uma máquina remota é usando o daemon rsync. Obviamente, isso exige que o daemon seja instalado e executado na máquina de destino. O RSYNC tenta entrar em contato com a máquina remota conversando com o daemon sempre que a fonte ou o caminho de destino contém um :: (Double Colon) separador após a especificação do host, ou quando um URL do RSYNC é especificado como rsync: //.



Supondo que o daemon rsync esteja ouvindo no porto 873 (o padrão), na máquina remota, podemos contatá -la em execução:

$ rsync -av/mnt/data/fonte/192.168.122.32 ::módulo/destino

Alternativamente, podemos usar um Rsync URL:

$ rsync -av/mnt/data/fonte/rsync: // 192.168.122.32/módulo/destino

Nos dois exemplos, módulo (destacado no comando), não representa o nome de um diretório na máquina remota, mas o nome de um recurso, ou módulo Na terminologia do RSYNC, configurada pelo administrador, e tornado acessível através do daemon rsync. O módulo pode apontar para qualquer caminho no sistema de arquivos.

Excluindo arquivos da sincronização

Às vezes, queremos excluir alguns arquivos ou diretórios da sincronização. Existem basicamente duas maneiras de realizar esta tarefa: especificando um padrão de exclusão diretamente com --excluir (Vários padrões podem ser especificados repetindo a opção) ou escrevendo todos os padrões em um arquivo (um por linha). Ao usar o último método, devemos passar no caminho do arquivo como argumento para o --exclua-se opção.

Todos os arquivos e diretórios que correspondem ao padrão serão excluídos da sincronização. Por exemplo, para excluir todos os arquivos com o “.txt ”Extensão que executaríamos:

$ rsync -av/mnt/data/fonte//run/mídia/egdoc/destino --exclude =*.TXT


Conclusões

Neste artigo, demos uma olhada rápida no RSYNC, uma ferramenta muito útil que podemos usar para sincronizar arquivos e diretórios, tanto em sistemas de arquivos locais quanto remotos. Vimos as opções mais usadas do programa e o que eles nos permitem realizar, como especificar os diretórios de origem e destino e os métodos que podemos usar para entrar em contato com um sistema de arquivos remoto remoto. Finalmente vimos como excluir arquivos da sincronização, especificando os padrões de exclusão direta ou dentro de um arquivo. O RSYNC tem muitas opções, muitas para mencionar aqui. Como sempre, podemos encontrar todas as informações de que precisamos no manual do programa!

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mastering Bash Script Loops
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Ubuntu 20.04 Guia
  • Exemplos RSYNC no Linux
  • Loops aninhados em scripts de basquete
  • Manipulação de big data para diversão e lucro Parte 1
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?