10 exemplos de uso do comando rsync

É um comando substituto, mais moderno e eficaz que o scp.


10 exemplos de uso do comando rsync

rsync é um utilitário amplamente usado para manter cópias de um arquivo em dois sistemas de computadores ao mesmo tempo.

É normalmente encontrado em sistemas do tipo Unix e em funções como um programa de sincronização de arquivos e transferência de arquivos. O algoritmo rsync, um tipo de codificação delta, é usado para minimizar o uso da rede.

Zlib pode ser usado para compressão adicional e o SSH ou stunnel pode ser usado para segurança de dados.

Rsync está em código aberto sob os termos da GNU GPL Versão 2.

Para instalar o Rsync na sua Distro, exemplos:

emerge rsync # Gentoo, Funtoo, ...
sudo apt install rsync # Debian, Ubuntu, Mint, ...
sudo pacman -S rsync # Arch, Manjaro, ...
sudo dnf install rsync # Red Hat, Fedora, ...

Agora vamos aos exemplos!


01. Copiando arquivo local

Similar ao comando cp

rsync ~/Downloads/arquivo.txt .

02. Copiando de forma verbose

Ou seja, exiindo detalhes da operação

rsync -v Downloads/arquivo.txt .
cheat_sheet_sed.pdf

sent 471,766 bytes  received 35 bytes  943,602.00 bytes/sec
total size is 471,560  speedup is 1.00

03. Copiando diretórios recursivamente

O parâmetro é -r ou --recursive, mas agora é bom usar todos os comandos com -v

rsync -rv Downloads/my-dir/ .

04. Criando diretório durante a cópia

O problema do exemplo 03 é que o diretório my-dir não será criado e os arquivos ficarão espalhados.

O correto é usar ele criando o diretório:

rsync -rv Downloads/my-dir/ --mkpath my-dir

A saída exemplo:

sending incremental file list
created 1 directory for my-dir
arquivo-01.txt.jpg
arquivo-02.txt.jpg
arquivo-03.txt.jpg
arquivo-04.txt.jpg
arquivo-05.txt.jpg
arquivo-06.txt.jpg
arquivo-07.txt.jpg
arquivo-08.txt.jpg
arquivo-09.txt.jpg
arquivo-10.txt.jpg
arquivo-11.txt.jpg
arquivo-12.txt.jpg

sent 630,589 bytes  received 286 bytes  1,261,750.00 bytes/sec
total size is 629,625  speedup is 1.00


05. Copiando um arquivo remoto para seu sistema

Essa é estilo total scp

rsync 192.168.189.36:~/arquivo-remoto.txt .

Ou especificando seu usuário e ainda também, verbose:

rsync -v user@192.168.189.36:~/arquivo-remoto.txt .

06. Copiando um diretório remoto

Assim como no scp precisa usar o -r, para esse caso remoto não precisa do --mkpath, os diretórios serão criados automaticamente.

rsync -rv user@192.168.189.36:~/my-dir .

Exemplo de saída:

user@192.168.189.36's password: 
receiving incremental file list
my-dir/
my-dir/arquivo-01.txt
my-dir/arquivo-02.txt
my-dir/arquivo-03.txt
my-dir/arquivo-04.txt
my-dir/subdir/
my-dir/subdir/outro-arquivo.txt

sent 135 bytes  received 501 bytes  84.80 bytes/sec
total size is 45  speedup is 0.07

07. Copiado com wildcards

A gente sabe que pode usar o * para copiar estilo glob, que não é regex. Então para copiar só os arquivos txt do diretório raiz remoto.

Lembrando que o diretório não será criado.

rsync -rv user@192.168.189.36:~/my-dir/*.txt .

08. Usando barra de progresso

Diferentemente do scp, se você cancelar a cópia o arquivo local deixará de existir, ou seja, ele não copia pedaços, é sempre de forma síncrona.

rsync -rv --progress user@192.168.189.36:~/distro.iso .


09. Definindo a velocidade da cópia

Cópia remota dentro da rede também consomem largura da banda baseada na velocidade da sua placa de rede, então para que você continue usando a rede ou a internet sem deixá-la lenta às vezes é interessante limitar a velocidade da cópia, para isso você pode usar o parametro --bwlimit=[número], onde o [número] será em kilobits .

rsync -rv --bwlimit=64 --progress user@192.168.189.36:~/*.vdi .

A velocidade não ficará com exatos 64k, mas ficará em torno, um pouco acima ou abaixo, exemplo:

user@192.168.189.36's password: 
receiving incremental file list
distro.iso
        425,984   0%   64.81kB/s   17:04:05

Manual e ajuda

E por fim, nos resta o manual e ajuda, pois lá ainda tem parâmetro pra caramba!

man rsync
rsync --help

comandos


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!