Guia Prático: Backup, Transferência e Restauração de Projetos com Tar e Rsync no Linux

Domine os comandos essenciais para compactar, enviar e restaurar arquivos de projetos web via SSH, com segurança e eficiência.

Guia Prático: Backup, Transferência e Restauração de Projetos com Tar e Rsync no Linux Servidor Imagem Ilustração: Pexels - panumas nikhomkhai

Introdução

Manter backups atualizados e saber transferi-los com segurança é uma habilidade obrigatória para quem administra servidores ou sites. Neste tutorial você aprenderá, na prática, como compactar um projeto inteiro, baixá-lo para sua máquina local, enviá-lo de volta ao servidor e restaurar todos os arquivos nos diretórios corretos. Utilizaremos os comandos tar e rsync combinados com SSH, tudo executado em um terminal Linux.

O cenário considera que você tem acesso SSH a um servidor remoto rodando na porta 22 (ou personalizada, como a 21 usada nos exemplos) e que a estrutura do projeto segue um padrão com pastas como assets, config, node_modules, src e webroot.

Pré-requisitos

  • Acesso SSH ao servidor de origem e destino.
  • Comandos tar, rsync e ssh instalados (presentes na maioria das distribuições Linux).
  • Permissões de leitura/escrita nas pastas envolvidas.

Passo 1 – Criar backup compactado no servidor

Conecte-se via SSH ao servidor onde o projeto está hospedado. O comando abaixo cria um arquivo .tar.gz contendo todo o diretório do projeto e o salva na pasta /tmp.

tar -czvf /tmp/backup_nome_pasta_projeto_com_br.tar.gz nomedoprojeto.com.br/

Explicação:

  • -c: cria um novo arquivo tar.
  • -z: compacta com gzip.
  • -v: modo verbose (mostra o progresso).
  • -f: especifica o nome do arquivo de saída.

Passo 2 – Baixar o backup do servidor para sua máquina local

Agora, da sua máquina local, use o rsync para transferir o arquivo compactado. Ajuste a porta SSH conforme necessário (no exemplo, porta 21).

rsync -avz --progress -e "ssh -p 21" [email protected]:/tmp/backup_nome_pasta_projeto_com_br.tar.gz /home/Downloads/backup_nome_pasta_projeto_com_br/

Detalhes:

  • -a: modo archive (preserva permissões, links, etc.).
  • -v: verbose.
  • -z: comprime durante a transferência.
  • --progress: exibe o progresso.
  • -e "ssh -p 21": instrui o rsync a usar SSH na porta 21.

Substitua ubuntu pelo seu usuário e 00.000.0.000 pelo IP do servidor.

Passo 3 – Enviar um arquivo da máquina local para o servidor

Se precisar subir um backup previamente baixado (ou uma nova versão compactada) de volta ao servidor, o comando é muito semelhante, apenas invertendo a ordem de origem e destino.

rsync -avz --progress -e "ssh -p 21" nome_pasta_projeto_com_br.tar.gz [email protected]:/tmp/nome_pasta_projeto_com_br.tar.gz

Passo 4 – Extrair o backup no servidor

Acesse novamente o servidor via SSH e vá até o diretório onde o arquivo foi colocado (/tmp neste guia). Extraia o conteúdo com:

cd /tmp
tar xzvf nome_pasta_projeto_com_br.tar.gz

Isso recriará a pasta nome_pasta_projeto_com_br/ com todos os arquivos dentro de /tmp.

Passo 5 – Restaurar os arquivos nas pastas do projeto

Com os arquivos extraídos, agora é preciso copiá-los para os diretórios de destino (por exemplo, dentro de /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/). Usaremos o rsync para espelhar cada subpasta.

cd /tmp/nome_pasta_projeto_com_br
rsync -avz assets/* /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/assets/
rsync -avz config/* /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/config/
rsync -avz node_modules/* /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/node_modules/
rsync -avz src/* /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/src/
rsync -avz webroot/* /home/nome_pasta_projeto/public_html/nome_pasta_projeto.com.br/webroot/

Observação: em alguns casos a pasta node_modules pode ser ignorada se você utiliza gerenciadores de pacotes e prefere rodar npm install diretamente no destino. Ajuste a lista conforme a estrutura real do seu projeto.

Dicas finais

  • Teste sempre os backups antes de remover versões antigas.
  • Se o tráfego for grande, execute os comandos em horários de menor uso.
  • Automatize o processo com scripts ou cron jobs para maior agilidade.

Agora você tem um fluxo completo e seguro para gerenciar backups e migrações de projetos Linux utilizando apenas ferramentas nativas. Adapte os caminhos e a porta SSH conforme sua infraestrutura e mantenha seus dados sempre protegidos.

Publicidade