Terminal Linux – Fazer backup em Linux com Rsync

Por: André Paula
Tempo de leitura: 4 min

O rsync, ou Remote Sync, é muito provavelmente o programa mais utilizado para fazer a copia e sincronização de informação, não só remota, como local. Uma das principais razões é que ele compara a informação da origem e do destino e apenas passa aquilo que foi alterado ou é novo. Na maioria das distribuições Linux já vem instalado, mas se não estiver, podem procurar por rsync no gestor de pacotes da distribuição que usam.

A sintaxe base do rsync é:

  • rsync [opções] [origem] [destino]

Vamos dar alguns exemplos práticos:

1 – Backup de todo o sistema, para um disco interno.

  • sudo rsync -aAXv / –exclude={“/dev/“,”/proc/“,”/sys/“,”/tmp/“,”/run/“,”/mnt/“,”/media/“,”/home/linuxtech/pCloudDrive/“,”/lost+found”} /media/linuxtech/Dados/Backup_system/

Explicação das opções usadas:

  • / – Diretório de origem
  • a – copia recursivamente e preserva: permissões de ficheiros, pastas, grupos, links simbólicos etc.
  • A – Preserva ACLs (Access-control List)
  • X – Preserva os atributos
  • v – Apresenta o que está a ser transferido
  • –exclude – Indica o que é para excluir. Muito importante colocar aqui também, alguma outra drive que esteja ligada ao vosso computador. No exemplo do comando acima, foi colocado o pCloudDrive que é um backup que tenho na nuvem mapeada no gestor de ficheiros, por isso foi colocada para excluir.

NOTA: Se fizerem backup para um disco externo, normalmente ele é mapeado em /media/ por isso procurem lá o vosso dispositivo para adicionar o caminho ao comando. Também é importante usar o sudo, para conseguirem passar informação em locais do sistema que só o administrador consegue.

2 – Backup apenas da pasta /home para um servidor remoto.

Foram criadas pastas no servidor remoto, para guardar o perfil test1, test2 e test3, e usado o rsync para enviar a informação do tes1:

  • mkdir -p backup_profile/{test1,test2,test3}
  • sudo rsync -azvP /home/test1/ cloud_user@18.132.60.244:/home/backup_profile/test1/

Explicação das opções usadas:

  • z – Comprime a informação durante a transferência
  • P – Vai mostrar uma barra de progresso enquanto os ficheiros são transferidos.

3 – Backup de pastas e ficheiros, mas apagar no destino o que não está na origem

Os comandos são os mesmos, no entanto acrescentem a opção –delete, porque sem este opção, o rsync não apaga nada no destino. Para terem uma copia sempre igual à de origem, podem usar o –delete mas testem primeiro o resultado do comando com a opção -n, que simula o que vai ser feito:

  • rsync -nazvP –delete /home/test1/ test3@18.132.60.244:/home/

4 – Backups regulares usando o crontab

Com o crontab é possível agendar tarefas individuais para cada utilizador, como instalar, desinstalar, copiar, mover etc. No exemplo seguinte, foi colocado um backup a ser efectuado todos os domingos às 23:30.

Para um melhor entendimento do crontab, a sintaxe base é:

  • mm hh dd MM ss comando

mm = minuto (0-59)
hh = hora (0-23)
dd = dia (1-31)
MM = mês (1-12)
ss = dia da semana (0-7)

1 – Editar o crontab

  • crontab -e

2 – Adicionar o comando

  • 30 23 * * 7 sudo rsync -aAXv / –exclude={“/dev/”,”/proc/”,”/sys/”,”/tmp/”,”/run/”,”/mnt/”,”/media/”,”/home/linuxtech/pCloudDrive/”,”/lost+found”} /media/linuxtech/Dados/Backup_system/

Para mais informações sobre o rsync: man rsync ou rsync –help

Espero que tenha sido útil este guia e deixem nos comentários alguma sugestão de melhoria.

Seguir:
Estar sempre actualizado com as novidades tecnológicas é para mim importante, em especial com tudo o que esteja relacionado com open source, linux e software livre, por isso tenho um podcast e escrevo sobre estes temas.
Exit mobile version