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/ [email protected]:/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/ [email protected]:/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.