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,rsyncesshinstalados (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.