Neste artigo, explicaremos como usar o rsync para copiar arquivos com alguns exemplos práticos. Também explicaremos o uso de 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 sistema local para o remoto
- Copie o arquivo / diretório do sistema remoto para o local
Explicamos os comandos e procedimentos mencionados neste artigo em um Ubuntu 20.04 LTS. Você precisará do Terminal de linha de comando para copiar arquivos usando rsync. Para abrir o aplicativo Terminal de linha de comando, use o atalho de teclado Ctrl + Alt + T.
Instalando Rsync
O Rsync vem pré-instalado no Ubuntu 20.04 LTS. No entanto, se ele for removido acidentalmente do sistema, você pode instalá-lo da seguinte forma:
$sudoaptoinstalarrsync
Aqui estão algumas das opções comumente usadas que podem ser usadas com 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: compacta os dados
–Q: suprime 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 em seu sistema, você pode fazer isso digitando rsync seguido pelo nome do arquivo de origem e o diretório de destino.
Por exemplo, para copiar um único arquivo file1.txt do local atual que é o diretório Home para o diretório ~ / Documents, o comando seria:
$rsync/casa/acreditam/arquivo1.txt/casa/acreditam/DocumentosNota: Em vez de /home/tin/file1.txt, também podemos digitar file1, pois estamos trabalhando no diretório inicial. Além disso, podemos usar ~ / Documents em vez de mencionar o caminho completo como / home / tin / Documents.
Copie vários arquivos localmente
Se você deseja copiar vários arquivos de uma vez de um local para outro dentro do seu sistema, você pode fazer isso 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 Home para o diretório ~ / Documents, o comando seria:
$rsync/casa/acreditam/arquivo2.txt/casa/acreditam/arquivo3.txt/casa/acreditam/DocumentosPara copiar todos os arquivos com a mesma extensão, você pode usar o símbolo de asterisco (*) em vez de especificar individualmente os nomes dos arquivos. Por exemplo, para copiar todos os arquivos do diretório Home que termina com a extensão .zip para o diretório ~ / Documents, usaremos:
$rsync/casa/acreditam/ *.zip ~/DocumentosCopiar diretórios localmente
Se você deseja copiar um diretório com seu subdiretório e todo o conteúdo de um local para outro em seu sistema, você pode fazer isso digitando rsync seguido pelo diretório de origem e destino.
Por exemplo, para copiar o diretório de amostra para teste / diretório dentro do diretório inicial, o comando seria:
$rsync-do /casa/acreditam/amostra/casa/acreditam/testeNota: Especificar / após o diretório de origem copia apenas o conteúdo do diretório. Se não especificarmos / 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 nossa amostra do diretório de origem também é copiada para o diretório de destino (já que usamos sample em vez de sample / como um diretório de origem).
Rsync suporta transferência incremental, como você pode ver na saída acima, ele apenas transfere 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 de no máximo 2.000 k do diretório ~ / Downloads para o diretório ~ / Documents, o comando seria:
$rsync-para --tamanho máximo= 2000k/casa/acreditam/Transferências/ * /casa/acreditam/DocumentosEste comando irá copiar todos os arquivos de ~ / Downloads para o diretório ~ / Documents, exceto aqueles maiores que 2000k.
Copie os 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 do diretório ~ / Downloads para o diretório ~ / Documents, o comando seria:
$rsync-para --min-size= 5M/casa/acreditam/Transferências/ /casa/acreditam/DocumentosEste comando irá copiar todos os arquivos de ~ / Downloads para o diretório ~ / Documents, exceto aqueles 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 do diretório ~ / Downloads para o diretório ~ / Documentos, o comando seria:
$rsync-para --excluir='*.fecho eclair' /casa/acreditam/Transferências/ /casa/acreditam/DocumentosCopie 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ê precisará de:
- Rsync instalado no sistema local e remoto
- Acesso SSH ao sistema remoto
- Senha de usuário remoto
Antes de copiar arquivos usando rsync, certifique-se de que você pode acessar o sistema remoto via SSH:
$sshremote_user@remote_ip
A sintaxe geral para copiar arquivos e diretórios para um sistema remoto usando rsync:
Por exemplo, para copiar um único arquivo file.txt de ~ / Downloads para o sistema remoto ~ / diretório de documentos, o comando seria:
$rsync-v~/Transferências/file1.txt umara@192.168.72.164:~/DocumentosDa mesma forma, para copiar o diretório ~ / Downloads / files em um sistema local com seu subdiretório e todo o conteúdo para o diretório ~ / Downloads / samples no sistema remoto:
$rsync-rv~/Transferências/files umara@192.168.72.164:~/Transferências/amostrasVocê também pode copiar os arquivos e diretórios da máquina remota para a sua máquina local. Por exemplo, para copiar um arquivo2.txt do sistema remoto para a área de trabalho do sistema local:
$rsync-vumara@192.168.72.164:~/Transferências/arquivo2.txt ~/Área de Trabalho/Da mesma forma, para copiar um diretório do sistema remoto para o sistema local
$rsync-rvumara@192.168.72.164:~/Transferências/amostra ~/Área de Trabalho/testeVocê também pode usar todas as opções como –max-size, –min-size, –exclude e outras enquanto copia arquivos de / para o sistema remoto.
Rsync é uma ótima ferramenta para copiar arquivos da origem ao destino local ou remotamente. Inclui um grande conjunto de opções que oferece flexibilidade e controle durante a transferência de arquivos de / para o sistema remoto.