17 exemplos úteis de comandos Rsync SSH para Linux

O rsync é um utilitário amplamente usado para manter cópias de um arquivo em dois OS simultaneamente.

Ðiego ⅽ[ː̠̈ː̠̈ː̠̈] ͌
Taverna Linux
5 min readAug 25, 2021

--

O Rsync também conhecido como sincronização remota é uma ferramenta de linha de comando usada para copiar e sincronizar arquivos e diretórios remotamente, bem como localmente em sistemas Linux/Unix. Com ele podemos sincronizar os dados:

  • Remota e localmente em diretórios, discos e redes.
  • Execute backups de dados.
  • Espelhamento entre duas máquinas Linux.

Segue uma lista com vários exemplos de comandos Rsync que incluem o uso de exemplos de backup e outras dicas que vão ajudar a aproveitar ao máximo esta ferramenta fabulosa.

Por que usar comandos Rsync?

Achei que perguntaria, então aqui está o porquê:

  1. Copia e sincroniza arquivos de forma eficiente para ou a partir de um sistema remoto.
  2. Ele suporta cópia de links, dispositivos, proprietários, grupos e permissões.
  3. Ele é muito mais rápido do que o Secure Copy (scp), pois usa um protocolo de atualização remota que permite a transferência entre dois conjuntos de arquivos. Da primeira vez, ele copia todo o conteúdo de um arquivo ou diretório da fonte para um destino, mas nos próximos usos, ele apenas copia os blocos e bytes alterados para o destino.
  4. Ele consome menos largura de banda, pois usa método de compressão e descompressão ao enviar e receber dados em ambas as extremidades.

17 diferentes comandos Rsync para usar (Man, Backup, SSH e Diretórios)

Sintaxe Rsync

sync options source destination

Argumentos Rsync comuns

  • -r: copia os dados recursivamente.
  • -v: para saída detalhada.
  • -a: modo de arquivamento que permite copiar arquivos recursivamente. Além disso, ele também preserva links simbólicos, permissões de arquivo, usuário e grupo.
  • -z: compactar dados de arquivos.
  • -h: legível por humanos, produz números em um formato que pode ser lido por humanos.

Instalação do Rsync (Remote Sync) no Linux

Instale usando o seguinte comando:

yum install rsync (para distros RedHat)
apt-get install rsync (para distros Debian)

Copiar e sincronizar arquivos ou um diretório (Local para Site Remoto)

Isso sincronizará o diretório da máquina local para a máquina remota, como se houvesse uma pasta no computador local “rpmpkgs” que carrega alguns pacotes RPM e você deseja que o conteúdo de diretórios locais enviado para o servidor remoto, use o seguinte comando:

[root@tavernalinux] rsync -avz rpmpkgs/ root@192.168.1.100:/home/
sending incremental file list

Copiar ou sincronizar um diretório remoto para desktop local

Isso vai ajudar a sincronizar o diretório remoto com o diretório local. No exemplo abaixo, um diretório /home/shaheer/rpmpkgs, um servidor remoto é recebe cópias em sistemas locais em /tmp/myrpms.

[root@tavernalinux] rsync -avzh root@192.168.1.100:/home/shaheer/rpmpkgs /tmp/myrpms
receiving incremental file list
created directory /tmp/myrpms

Isso deve sincronizar um único arquivo em uma máquina local de um local para outro. No exemplo, um backup de nome de arquivo.tar precisa ser copiado ou sincronizado para /tmp/backups/ pasta.

[root@tavernalinux] rsync -zvh yourfiles.tar /tmp/yourfiles/
created directory /tmp/yourfiles
yourfiles.tar

O comando a seguir deve transferir ou sincronizar todos os arquivos de um diretório para outro diretório diferente na mesma máquina. Nos exemplos, /root/rpmpkgs carrega alguns arquivos de pacote rpm e você precisa que esse diretório seja copiado para dentro pasta /tmp/backups/.

[root@tavernalinux] rsync -avzh /root/rpmpkgs /tmp/yourdekifiles/
sending incremental file list
rpmpkgs/

Exibir progresso da transferência Rsync

Usamos a opção -progress para mostrar o progresso durante a transferência de dados de uma máquina para outra. Ele também exibe os arquivos e o tempo restante para concluir a transferência.

[root@tavernalinux] rsync -avzhe ssh --progress /home/rpmpkgsRsync sobre SSH

Podemos usar o SSH (Secure shell) para a transferência de dados, usando este protocolo durante a transferência de dados, podemos ter certeza de que os dados estão sendo transferidos em uma conexão segura com criptografia para que ninguém possa ler dados enquanto são transferidos.

Além disso, quando usamos essa técnica, precisamos fornecer senha de usuário/root para alcançar uma determinada tarefa, portanto, usando essa opção deve enviar logins de forma criptografada para que a senha permaneça segura.

Arquivos de backup de um servidor de nuvem para um servidor hospedado localmente via SSH

Para especificar o protocolo, você precisa aplicar o comando –e com o nome do protocolo que deseja usar. No exemplo, usaremos ssh com a opção -e e realizar a transferência de dados.

[root@tavernalinux]rsync -avzhe ssh root@192.168.1.200:/root/install.log /tmp/
root@192.168.1.200's password:

Copiar um arquivo do servidor local para um servidor remoto local com SSH

[root@tavernalinux] rsync -avzhe ssh backup.tar root@192.168.1.200:/dekibackup/
root@192.168.1.200's password:
sending incremental file list

Rsync –delete

Se algum arquivo ou diretório não existir na origem, mas sair no destino, convém excluir esse arquivo ou diretório existente em no destino durante a sincronização.

A opção -delete pode ser usada para excluir um arquivo que não está no diretório de origem.

A origem e o alvo estão em sincronia, agora criando novos arquivos de teste.txt no alvo.

[root@tavernalinux] touch tavernalinuxryncpost.txt

[root@tavernalinux] rsync -avz --delete root@192.168.1.200:/var/lib/rpm/

O destino carrega um novo arquivo conhecido como teste.txt quando sincronizado com a fonte com esta opção, ele removeu o arquivo tavernalinuxrysncpost.txt.

Defina o tamanho máximo dos arquivos a serem transferidos

Os usuários podem especificar o tamanho máximo do arquivo a ser transferido ou sincronizado. Isso pode ser feito com a opção de -max-size. No exemplo, o tamanho máximo é de 200k, assim este comando vai transferir apenas os arquivos que do mesmo ou tamanho, ou menores.

[root@tavernalinux] rsync -avzhe ssh --max-size='400k' /var/lib/rpm/ root@192.168.1.200:/root/tmprpm
shaheer@192.168.1.200's password:
sending incremental file list
created directory /root/tmprpm
./

Faça uma simulação com o Sync

Se você é um novo usuário e não sabe o que seu comando vai fazer. Isso pode estragar as coisas na sua pasta de destino e, em seguida, fazer desfazer a bagunça pode ser um trabalho bastante tedioso.

root@tavernalinux$ rsync --dry-run --remove-source-files -zvh mybackup.tar /tmp/mybackup/
mybackup.tar

Conclusão: Qual comando Rsync te surpreendeu?

Uma sincronização remota é uma ótima técnica que facilitou a vida de muitos administradores de sistemas para criar backups e mover dados entre servidores. É por isso que compartilhei os exemplos práticos de comandos Rsync que você pode utilizar para backups, usar no SSH, mover e sincronizar diretórios.

Mais informações sobre a página oficial Man page.

🐼 CC BY-SA · Participe do Canal no Telegram

--

--

Ðiego ⅽ[ː̠̈ː̠̈ː̠̈] ͌
Taverna Linux

Voluntário @Mozilla · Colaborador no fórum @imasters e Blog do Evidaldo · Fundador do projeto @tavernalinux https://tavernalinux.com