Android

Como usar o rsync para transferência e sincronização de dados local e remota

rsync - Cópia, Sincronização e Backup de arquivos no Linux

rsync - Cópia, Sincronização e Backup de arquivos no Linux

Índice:

Anonim

O Rsync é um utilitário de linha de comando rápido e versátil que sincroniza arquivos e pastas entre dois locais em um shell remoto ou de / para um daemon Rsync remoto. Ele fornece rápida transferência incremental de arquivos, transferindo apenas as diferenças entre a origem e o destino.

O Rsync pode ser usado para espelhar dados, backups incrementais, copiar arquivos entre sistemas e substituir os comandos scp , sftp e cp para uso diário.

Neste tutorial, mostraremos como usar o rsync através de exemplos práticos e explicações detalhadas das opções mais comuns do rsync .

Instalando o Rsync

O utilitário rsync é pré-instalado na maioria das distribuições Linux e macOS. Você pode verificar se ele está instalado no seu sistema digitando:

rsync --version

rsync version 3.1.2 protocol version 31

Instale o Rsync no Ubuntu e Debian

sudo apt install rsync

Instale o Rsync no CentOS e no Fedora

sudo yum install rsync

Sintaxe do comando Rsync

Antes de começar a usar o comando rsync , vamos começar revisando a sintaxe básica.

As expressões do utilitário rsync têm o seguinte formato:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - As opções do rsync. SRC - diretório de origem. DEST - Diretório de destino. USER - Nome de usuário remoto. HOST - Nome do host remoto do Endereço IP.

rsync fornece várias opções que controlam todos os aspectos de seu comportamento. As opções mais usadas são:

  • -a , --archive , modo de arquivamento, equivalente a -rlptgoD . Essa opção informa ao rsync para sincronizar diretórios recursivamente, transferir dispositivos especiais e de bloco, preservar links simbólicos, tempos de modificação, grupo, propriedade e permissões. -z , --compress . Esta opção forçará o rsync a compactar os dados conforme eles são enviados para a máquina de destino. Use esta opção apenas se a conexão com a máquina remota for lenta. -P , equivalente a --partial --progress . Quando essa opção é usada, o rsync mostra uma barra de progresso durante a transferência e mantém os arquivos parcialmente transferidos. É útil ao transferir arquivos grandes em conexões de rede lentas ou instáveis. --delete . Ao usar esta opção, o rsync excluirá arquivos estranhos do local de destino. É útil para espelhar. -q , - --quiet . Use esta opção se desejar suprimir mensagens sem erro. -e . Esta opção permite escolher um shell remoto diferente. Por padrão, o rsync está configurado para usar ssh.

Uso básico de Rsync

Para copiar um único arquivo de um para outro local, execute o seguinte comando:

rsync -a /opt/filename.zip /tmp/

O usuário que está executando o comando deve ter permissões de leitura no local de destino e permissões de gravação no destino.

Omitir o nome do arquivo do local de destino copia o arquivo com o nome atual. Se você deseja salvar o arquivo com um nome diferente, especifique o novo nome na parte de destino:

rsync -a /opt/filename.zip /tmp/newfilename.zip

No exemplo abaixo, estamos criando um backup local dos arquivos de nosso site:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Se o diretório de destino não existir, o rsync o criará.

Vale ressaltar que o rsync dá um tratamento diferente aos diretórios de origem com uma barra final / . Se você adicionar uma barra no diretório de origem, ela copiará apenas o conteúdo do diretório para o diretório de destino. Quando a barra final é omitida, o rsync copiará o diretório de origem dentro do diretório de destino.

Como usar o Rsync para sincronizar dados de / para uma máquina remota

Ao usar o rsync para transferência remota, ele deve ser instalado na máquina de origem e de destino. As novas versões do rsync estão configuradas para usar o SSH como shell remoto padrão.

No exemplo a seguir, estamos transferindo um diretório de um local para uma máquina remota:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Se você não definiu um login SSH sem senha na máquina remota, será solicitado a digitar a senha do usuário.

Se você deseja transferir dados de um controle remoto para uma máquina local, precisará usar o local remoto como fonte:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Se o SSH no host remoto estiver escutando em uma porta diferente da padrão 22, você poderá especificar a porta usando a opção -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Ao transferir grandes quantidades de dados, é recomendável executar o comando rsync dentro de uma sessão de tela ou usar a opção -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Excluir arquivos e diretórios

Ao excluir arquivos ou diretórios, você precisa usar seus caminhos relativos para o local de origem.

Existem duas opções para excluir arquivos e diretórios. A primeira opção é usar o argumento --exclude e especificar os arquivos e diretórios que você deseja excluir na linha de comando.

No exemplo a seguir, estamos excluindo os tmp node_modules e tmp que estão localizados dentro do src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

A segunda opção é usar o argumento --exclude-from e especificar os arquivos e diretórios que você deseja excluir em um arquivo.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Conclusão

Neste tutorial, você aprendeu como usar o Rsync para copiar e sincronizar arquivos e diretórios. Há muito mais para aprender sobre o Rsync na página do manual do usuário do Rsync.

Sinta-se livre para deixar um comentário se tiver alguma dúvida.

terminal rsync