Como copiar dados de um servidor dedicado para outro utilizando rsync

Introdução

Copie facilmente os dados de um servidor dedicado para outro graças ao rsync.

No caso de uma migração ou de um backup, é possível que tenha de copiar ou transferir os dados de um servidor dedicado para outro.

Distribuído com uma licença GNU GPL, rsync (“remote synchronization”) é um software open source de sincronização de pastas e arquivos capaz de efetuar uma sincronização unidirecional, ou seja, copiar as pastas e arquivos de um servidor de origem para um servidor de destino.

Requisitos

O que precisa de saber

Ter conhecimentos de gestão em Linux.
Saber instalar novos pacotes
Saber ligar-se através de SSH

O que precisa de ter

Dispor de pelo menos dois servidores dedicados Line Host® Cloud que funcionam com uma distribuição GNU/Linux.
Dispor de um acesso root na máquina de origem.
Dispor de um acesso SSH na máquina de destino.

Instruções

1 – Instalar o rsync

O servidor de origem utilizado no âmbito deste tutorial funciona com Debian 9.4. Uma vez que esta distribuição dispõe de forma nativa do rsync nos repositórios, não é necessário completá-los, e o rsync pode ser instalado diretamente.

Para isso, ligue-se através de SSH enquanto super utilizador (ou root) na sua máquina de origem, e instale o rsync através do seguinte comando:

apt-get update && apt-get install rsync


2 – Inicie a transferência

Sem excluir nenhuma pasta da cópia

Rsync permite copiar todas as pastas, subpastas e arquivos incluídos no caminho indicado para outra máquina.

Para isso, a estrutura geral do comando utilizado neste tutorial será deste tipo: rsync -av source/ destination/

Embora o rsync utilize o protocolo SSH para se ligar à máquina de destino, é necessário adicionar as informações necessárias. A estrutura do comando deve ser completado da seguinte forma: rsync -av *YourLocalFolder*/ login@server:/*DestinationFolder*/

Por outro lado, se alterou a porta SSH para outra sem ser a porta 22, será necessário especificar o número da porta a utilizar para estabelecer a ligação SSH adicionando -e 'ssh -p X' ao seu comando, onde o “X” será a porta SSH que deve ser utilizada.

O comando que deve utilizar para copiar os seus dados de um servidor para outro através de rsync será o seguinte:

rsync -av -e 'ssh -p X' SuaPastaLocal/ login@server:/SuaPastaDeDestino/

Por predefinição, nenhum indicador permitirá controlar precisamente o progresso da cópia. Para poder seguir facilmente (estatísticas detalhadas, expressão em MB, GB, etc…) e em tempo real o progresso da transferência, aconselhamos que adicione o argumento -P --stats --human-readable ao comando, que ficará então como segue:

sh rsync -av -P --stats --human-readable -e 'ssh -p X' SuaPastaLocal/ login@server:/SuaPastaDeDestino/

Excluir uma ou várias pastas da cópia

Se o rsync permitir transferir todas as pastas de uma máquina, poderá querer excluir determinadas pastas ou subpastas da cópia que está prestes a realizar. Nesse caso, deverá indicar o seu nome.

De forma geral, recomenda-se que exclua da transferência a cache e os ficheiros de sistema temporários do servidor de origem, de forma a evitar qualquer conflito no servidor de destino.

Aqui tem uma lista não exaustiva de algumas das pastas que podem conter este tipo de ficheiros num servidor baseado numa distribuição GNU/Linux:

/dev/*
/proc/*
/sys/*
/tmp/*
/run/*
/media/*
/lost+found

Depois de determinar a lista de pastas ou subpastas a serem excluídas, o argumento --exclude permite indicar ao rsync que deve ignorar estas pastas ao realizar a cópia.

Este argumento deve ser colocado no final do comando, repetindo-o tantas vezes quanto o número de pastas ou subpastas. A estrutura geral deste comando será rsync –exclude=”Nome_pasta” –exclude=”Nome_da_outra_pasta source/ destino/

Tenha em conta que é necessário indicar o local relativo à pasta, já que o rsync não admite caminhos absolutos. Assim, se uma das pastas que pretende excluir estiver localizada em “/home/user/test” e que está situado em “/test”, deverá indicar “-exclude=”test”” (caminho relativo) e não “–exclude=”/home/user/test”” (caminho absoluto).

Tendo em conta os elementos indicados previamente, o comando de transferência será o seguinte:

rsync -av -P --stats --human-readable -e 'ssh -p X' --exclude="Nome_pasta" --exclude="Nome_da_outra_pasta" SuaPastaLocal/ login@server:/SuaPastaDeDestino/

Conclusão

Neste tutorial, explicámos como copiar os dados de um servidor dedicado para outro graças ao rsync.

Esse artigo foi útil?

Também pode te interessar