Como usar o RSYNC para copiar arquivos

Como usar o RSYNC para copiar arquivos

O RSYNC é uma ferramenta de linha de comando no Linux usada para copiar arquivos de um local de origem para um local de destino. Você pode copiar arquivos, diretórios e sistema de arquivos inteiros e manter sincronizar os arquivos entre diferentes diretórios. Faz mais do que apenas copiar os arquivos. Reduz a quantidade de dados enviados pela rede enviando apenas os arquivos que são novos ou atualizados. É por isso que é considerado uma grande utilidade para copiar e fazer backup de arquivos. O RSYNC também suporta a cópia de arquivos para um sistema remoto sobre SSH.

Neste artigo, explicaremos como usar o RSYNC para copiar arquivos com alguns exemplos práticos. Também explicaremos o uso do RSYNC na cópia de um único arquivo, vários arquivos e diretório para sistemas locais e remotos. Estaremos abordando como usar o RSYNC para:

  • Copiar arquivo/diretório dentro do sistema local
  • Copie o arquivo/diretório do local para o sistema remoto
  • Copiar arquivo/diretório do sistema remoto para local

Explicamos os comandos e procedimentos mencionados neste artigo em um Ubuntu 20.04 LTS. Você precisará do terminal da linha de comando para copiar arquivos usando o RSYNC. Para abrir o aplicativo de terminal da linha de comando, use o atalho do teclado Ctrl+Alt+T.

Instalando o Rsync

O RSYNC vem pré-instalado no Ubuntu 20.04 LTS. No entanto, se for removido acidentalmente do sistema, você poderá instalá -lo da seguinte forma:

$ sudo apt install rsync

Aqui estão algumas das opções comumente usadas que podem ser usadas com o RSYNC:

-A: Modo de Arquivo
-V: mostra detalhes do processo de cópia
-P: mostra a barra de progresso
-R: Copia os dados recursivamente
-Z: Compressa dados
-Q: Suprimir a saída

Copie arquivos e diretórios localmente

A sintaxe geral do rsync é:

$ rsync [opção] [fonte] [Destino]

Copie um único arquivo localmente

Se você deseja copiar um arquivo de um local para outro dentro do seu sistema, você pode fazê -lo digitando rsync seguido pelo nome do arquivo de origem e pelo diretório de destino.

Por exemplo, para copiar um único arquivo “File1.txt ”do local atual que é o diretório inicial do diretório ~/documentos, o comando seria:

$ rsync/home/tin/file1.txt/home/lata/documentos

Nota: em vez de “/home/tin/file1.txt ”, também podemos digitar“ file1 ”como estamos trabalhando no diretório doméstico. Além disso, podemos usar ~/documentos em vez de mencionar o caminho completo como “/home/tin/documentos”.

Copie vários arquivos localmente

Se você deseja copiar vários arquivos de uma só vez de um local para outro dentro do seu sistema, você pode fazê -lo digitando rsync seguido pelo nome dos arquivos de origem e o diretório de destino.

Por exemplo, para copiar os arquivos “File2.txt "e" file3.txt ”do diretório inicial do diretório ~/documentos, o comando seria:

$ rsync/home/tin/file2.txt/home/tin/file3.txt/home/lata/documentos

Para copiar todos os arquivos com a mesma extensão, você pode usar o símbolo Asterisk (*) em vez de especificar individualmente os nomes de arquivos. Por exemplo, para copiar todos os arquivos do diretório inicial que terminou com “.Extensão Zip ”para o diretório ~/documentos, usaremos:

$ rsync/home/tin/*.zip ~/documentos

Copie os diretórios localmente

Se você deseja copiar um diretório com seu subdiretório e todo o conteúdo de um local para outro dentro do seu sistema, você pode fazer isso como digitando rsync seguido pelo diretório de origem e destino.

Por exemplo, para copiar o diretório "amostra" para o diretório "teste/" no diretório doméstico, o comando seria:

$ rsync -av/home/tin/sample/home/tin/teste

Nota: Especificando "/" após o diretório de origem apenas copia o conteúdo do diretório. Se não especificarmos o "/" após o diretório de origem, o diretório de origem também será copiado para o diretório de destino.

Como na saída a seguir, você pode ver que nosso diretório de origem "amostra" também é copiado para o diretório de destino (como usamos "amostra" em vez de "amostra/" como um diretório de origem).

O RSYNC suporta a transferência incremental, como você pode ver na saída acima que transfere apenas os arquivos que são novos ou atualizados.

Copiar arquivos com base no tamanho máximo

Ao copiar, também podemos especificar o tamanho máximo dos arquivos que podem ser copiados com a opção "-Max-size". Por exemplo, para copiar os arquivos não maiores que 2000k de ~/downloads para ~/Documents Directory, o comando seria:

$ rsync -a -max -size = 2000k/home/tin/downloads/*/home/tin/documentos

Este comando copiará todos os arquivos de ~/downloads para ~/Documents Directory, exceto os maiores que 2000k.

Copiar arquivos com base no tamanho mínimo

Da mesma forma, também podemos especificar o tamanho mínimo dos arquivos que podem ser copiados com a opção "-Min-size". Por exemplo, para copiar os arquivos não menores que 5m de ~/downloads para ~/Documents Directory, o comando seria:

$ rsync -a - -men -size = 5m/home/tin/downloads//home/tin/documentos

Este comando copiará todos os arquivos de ~/downloads para o diretório ~/documentos, exceto os menores que 5m.

Excluir arquivos

Ao copiar arquivos de um diretório para outro, você pode excluir alguns arquivos usando a opção “-exclude” seguida pelo nome do arquivo ou a extensão do tipo de arquivo.

Por exemplo, para excluir todos os .Arquivos Zip ao copiar arquivos de ~/downloads para ~/documentos diretório, o comando seria:

$ rsync -a --exclude = "*.zip "/home/lata/downloads//home/tin/documentos

Copie arquivos e diretórios remotamente

Com o RSYNC, você pode copiar um único arquivo, vários arquivos e diretórios para um sistema remoto. Para copiar arquivos e diretórios remotamente, você exigirá:

  • RSYNC instalado no sistema local e remoto
  • Acesso SSH ao sistema remoto
  • Senha de usuário remoto

Antes de copiar arquivos usando o RSYNC, verifique se você pode acessar o sistema remoto via SSH:

$ ssh remote_user@remote_ip


A sintaxe geral para copiar arquivos e diretórios para um sistema remoto usando o RSYNC:

$ rsync [Opção] [fonte] [RemoteUser@remoteip: Destination]

Por exemplo, para copiar um único arquivo “arquivo.txt ”de ~/downloads to remoto system ~/Documents Directory, o comando seria:

$ rsync -v ~/downloads/file1.txt [email protected]: ~/documentos

Da mesma forma, copiar o diretório "~/downloads/arquivos" em um sistema local com seu subdiretório e todo o conteúdo do diretório "~/downloads/amostras" no sistema remoto:

$ rsync -rv ~/downloads/arquivos [email protected]: ~/downloads/amostras

Você também pode copiar os arquivos e diretórios da máquina remota para sua máquina local. Por exemplo, para copiar um “file2.txt ”do sistema remoto para a área de trabalho do sistema local:

$ rsync -v [email protected]: ~/downloads/file2.txt ~/desktop/

Da mesma forma, copiar um diretório do sistema remoto para o sistema local

$ rsync -rv [email protected]: ~/downloads/amostra ~/Desktop/teste

Você também pode usar todas as opções como -max -size, -min -size, -exclude e outras enquanto copia arquivos de/para o sistema remoto.

O RSYNC é uma ótima ferramenta para copiar arquivos de origem para destino local ou remotamente. Inclui um grande conjunto de opções que oferece flexibilidade e controle ao transferir arquivos para/para o sistema remoto.