É um utilitário poderoso que pode servir em muitas situações. Neste artigo, mostrarei como começar com o RSYNC com uma demonstração. A demonstração será realizada no Ubuntu 18.04.
Rsync
Rsync significa o termo sincronização remota. Apesar do nome, ele pode lidar com a sincronização de arquivo remotamente e localmente. O termo rsync também é usado para se referir ao protocolo RSYNC que o RSYNC usa para sincronizar. Neste artigo, o RSYNC sempre denotará a ferramenta, não o protocolo.
Devido à sua pura popularidade, o RSYNC está disponível em quase todos os sistemas Linux e UNIX. Há uma boa chance de ser pré-instalado. Caso contrário, faça uma pequena pesquisa sobre como instalar o RSYNC em seu sistema.
Aqui está uma lista restrita de recursos que o RSYNC oferece.
Uso do RSYNC
Antes de pular para o RSYNC, precisamos de alguns arquivos fictícios para trabalhar. Vamos criar um diretório fictício primeiro.
$ mkdir -v primário
Uma vez criado, é hora de criar um punhado de arquivos fictícios. Para criar um arquivo, usarei o comando Touch. Saiba mais sobre o comando Touch.
$ Touch Dummy 1… 20
Pronto! Agora estamos prontos para usar o RSYNC para executar ações usando esses arquivos fictícios.
Estrutura de comando rsync
O RSYNC usa a seguinte estrutura de comando.
$ rsync
Sincronizar diretórios locais
Agora, é hora de usar o RSYNC para sincronizar arquivos em vários destinos. Neste exemplo, estaremos sincronizando o conteúdo de DIR_Primary para dir_target.
$ mkdir -v alvo
Diga ao RSYNC para sincronizar o conteúdo de ambos os diretórios.
$ rsync -v -r Primary/ Target
Aqui, usamos dois argumentos diferentes.
-v: Diz ao RSYNC para encontrar o modo detalhado
-r: Recursive, necessário para a sincronização de diretórios.
Neste próximo exemplo, usaremos uma bandeira diferente.
$ rsync -v -a primário/ destino
-a: Uma bandeira combinada que significa "Arquivo".
Usando esse sinalizador, o RSYNC sincronizará o conteúdo recursivamente, preservando quaisquer arquivos simbólicos, especiais/de dispositivo, tempos de modificação, permissões de arquivo, grupo, proprietário, etc. É mais comumente usado do que a bandeira "-r". Para o arquivo, este é um método mais recomendado.
Você notou que em todos os comandos que executamos até agora, no caso da fonte, sempre retemos o "/" após o nome do diretório? Isso é para dizer ao RSYNC que a fonte é todo o conteúdo do diretório de origem. Se o "/" no final do diretório de origem não for usado, o RSYNC simplesmente criará uma cópia do diretório de origem em vez de seu conteúdo.
Vamos verificar com um exemplo.
$ rsync -v -um alvo principal
Verifique o resultado da saída.
$ TEVERTE TERGA/
Na maioria das vezes, isso não é algo que precisamos. No entanto, dependendo da situação, pode ser útil.
RSYNC TEST RUN
Antes de executar um comando rsync, é sempre importante verificar se o comando executará a ação conforme esperado. Se você deseja testar a ação do RSYNC para um determinado comando, use a bandeira "-n" ou "-Dry Run".
$ rsync -AVN Primary/ Target
$ rsync -avn alvo primário
Aqui, a saída mostra o que o RSYNC executaria se o comando fosse realmente executado. Sempre que você estiver testando, não se esqueça de usar a bandeira "-v" para obter uma representação precisa do que está acontecendo.
Rsync sobre uma conexão remota
Este é outro recurso interessante suporta o RSYNC. Se o seu local de backup estiver em algum lugar remoto, você poderá configurar facilmente o RSYNC para realizar backup no local remoto através do SSH. No entanto, ambas as máquinas devem ter o RSYNC instalado. Além disso, ambos os sistemas também precisam ter as chaves ssh definidas.
Preparar? Vamos começar. No começo, é a sincronização do arquivo.
$ rsync -a@ :<
destino_dir>
Aqui, esta operação é chamada de "push" porque empurra um diretório do sistema local para um sistema remoto. O oposto é conhecido como "puxar".
$ rsync -a@ :
O RSYNC trata o primeiro argumento como fonte, o segundo como o destino.
Opções úteis do RSYNC
O RSYNC suporta uma tonelada de opções. Todos eles servem ao seu próprio propósito. No entanto, na maioria das vezes, apenas alguns deles são usados na maioria das vezes. Nesta seção, vamos dar uma olhada em algumas opções úteis do RSYNC.
Na maioria das vezes, os arquivos que você está prestes a sincronizar não são compactados. Usando compactação, você pode economizar tempo e largura de banda ao custo de um pouco de poder de processamento extra. O RSYNC oferece compactação por padrão. Para executar a sincronização compactada, use a bandeira "-z".
$ rsync -avz
Esta bandeira interessante combina a função da bandeira "-Progress" e "-Parcial". O primeiro é mostrar uma barra de progresso da transferência e a segunda é permitir a retomada de transferência interrompida. Ambos os recursos são combinados na bandeira "-p".
$ rsync -avzp
Agora, vamos verificar como o RSYNC lida com a sincronização de arquivos de forma inteligente. Execute o comando anterior novamente.
$ rsync -avzp
Aqui, o RSYNC não voltou a appliar todos os arquivos. Em vez disso, pulou aqueles que não mudaram de forma alguma. Neste exemplo, ele pulou todos os arquivos, pois todos eles estão presentes no diretório de destino.
E se você excluísse um arquivo do diretório de origem? Por padrão, o RSYNC não excluirá nada do diretório de destino. Para forçar os arquivos de exclusão do RSYNC, use a sinalização "-delete". No entanto, use a corrida a seco para testar se o comando funcionar como você quiser.
$ rsync -Avn -Delete
Por padrão, o RSYNC sincronizará todos os arquivos/diretórios da fonte para o diretório de destino. Em determinadas situações, você pode incluir/excluir determinados arquivos da sincronização. O RSYNC oferece opções úteis como "-exclude" e "-include" para excluir/incluir certos arquivos. Passe o padrão de arquivo como o valor para esses argumentos.
$ rsync -avn --exclude =--incluir =
Você também pode definir o maior tamanho de arquivo que o RSYNC deve sincronizar. Para fazer isso, use a bandeira "-Max-Size" seguida pelo tamanho do arquivo.
$ rsync -avn -max -size = '10k'
O RSYNC tem outro recurso interessante em sua manga. Não precisa mais do arquivo de origem após a sincronizar? O RSYNC pode fazer isso, sem problemas. No entanto, verifique se você não está executando o RSYNC com a bandeira "-delete". Caso contrário, o RSYNC excluirá os arquivos sincronizados do destino!
$ rsync -AV-Remove-source-Files
Pensamentos finais
Estes são apenas um cenário comum e simples de uso do rsync. Oferece muito mais do que isso. É possível automatizar operações do RSYNC usando o daemon rsync ou outro script. Felizmente, este guia foi útil para começar com o RSYNC.
Interessado em mais rsync? Bem, você pode usar o RSYNC como um copiador de arquivo. É mais eficiente e inteligente que CP. Recursos mais detalhados e uso podem ser encontrados na página do RSYNC Man.
$ MAN RSYNC
Aproveitar!