rsync: como copiar/guardar ficheiros no Linux

Introdução ao rsync

LinuxNeste tutorial, vou explicar-lhe como utilizar o rsyncrsync(Remote Synchronization) para fazer cópias/cópias de segurança.

rsynTrata-se de uma ferramenta de sincronização de pastas disponível na maioria das distribuiçõesLinuxe que é frequentemente utilizada para efetuar cópias de segurança de ficheiros/sites…

Ao utilizar sucessivamente o mesmo comando, ou seja, com a mesma origem e destino,rynco rsync irá copiar apenas os novos elementos e aqueles que foram alterados.

A vantagem de utilizar o rsync é o suporte nativo ao SSH, que permite copiar para um servidor remoto ou a partir de um servidor remoto.

Utilização do rsync

Agora, vamos ver como funciona o rsync.

Tal como a maioria dos programas de cópia, é necessário especificar uma origem e um destino:

rsync -parameters source/ destination/

Os parâmetros mais utilizados são:

  • -a / –archive: permite efetuar uma cópia recursiva, preservando praticamente todas as propriedades dos elementos copiados.
  • -v / –verbose: permite visualizar o progresso

Para ilustrar este tutorial, vamos guardar a pasta/etc/ansible/, numa primeira fase, no mesmo servidor, numa pasta específica/backup/ansible/, e, numa segunda fase, num servidor remoto.

Eis a pasta de origem:

Para copiar o ficheiro, eis o comando a utilizar:

sudo rsync -a /etc/ansible/ /backup/ansible/

-vComo se pode ver, o comando não apresenta qualquer saída; se se pretender obter informações sobre a transferência, é necessário adicionar o parâmetro.

Se eu verificar a pasta /backup/ansible/, vejo que as pastas e os ficheiros foram efetivamente copiados.

Como puderam ver no comando para efetuar a cópia, no final da fonte há um /.

Os dois comandos seguintes não têm o mesmo resultado:

  • rsync -a /etc/ansible /backup/ansible/
  • rsync -a /etc/ansible/ /backup/ansible/

O primeiro comando irá criar a pasta de origem no local de destino, o que significa que encontraríamos a cópia de segurança na seguinte pasta:/backup/ansible/ansible/ enquanto que o segundo comando copia o conteúdo da pasta de origem para a pasta de destino.

Para visualizar o progresso e o resultado do comandorsync, é necessário adicionar o parâmetro -v

sudo rsync -av /etc/ansible/ /backup/ansible/

Se eu executar o mesmo comando a seguir, pode-se ver que nada foi copiado, pois não foi efetuada qualquer alteração.

Na apresentação, referi quersynco suporta nativamente o SSH para efetuar a cópia de segurança para um servidor remoto e é isso que vamos ver agora.

O servidor remoto pode ser tanto a origem como o destino (pode até ser ambos ao mesmo tempo, mas ainda não experimentei!).

Eis a sintaxe para indicar o servidor remoto: <user>@<server>:/path/use/by/rsync/.

Para fazer a cópia de segurança da pasta /etc/ansible/ num servidor remoto:

sudo rsync -avz /etc/ansible/ [email protected]:/backup/ansible/

Ao executar o comando, é necessário indicar a palavra-passe da conta no servidor remoto.

Como podem ver, adicionei o parâmetro -z, que permite ativar a compressão durante a transferência.

A conta utilizada para a ligação ao servidor remoto deve ter direitos de escrita na pasta de destino.

No servidor de destino, encontro os meus ficheiros e pastas que foram transferidos por rsync.

Na Internet, também encontrará esta sintaxe de comando:

sudo rsync -e ssh -avz /etc/ansible/ [email protected]:/backup/ansible/

O parâmetro-e é adicionado para indicar o shell remoto (remote shell)

Se pretender criar um script de cópia de segurança para um servidor remoto, terá de configurar uma autenticação SSH por chave.

Parâmetros adicionais para o rsync

Para concluir este primeiro tutorial dedicado aorsync , eis alguns parâmetros úteis:

  • --delete-after : esta opção permite eliminar os ficheiros na pasta de destino que já não se encontram na fonte
  • --remove-source-files : eliminar os ficheiros da origem após a transferência; isto equivale a fazer um «cortar/colar», não sendo as pastas eliminadas.
  • --exclude : permite excluir ficheiros ou pastas--exclude="*.log" --exclude="temp"; ao adicionar isto ao comando rsync, serão excluídos todos os ficheiros com a extensão .log e as pastas cujo nome contenha «temp».

Agora já tem todas as informações necessárias para configurar scripts de cópias de segurança utilizando o rsync.

Além disso, aqui está a página dersync manual do rsync com todos os parâmetros disponíveis.

Num projeto tutorial, explicarei como fazer cópias de segurança diferenciais e incrementais com o rsync.

Romain Drouche
Romain Drouche
Arquiteto de Sistemas | MCSE: Infraestrutura Essencial
Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

Deixe um comentário