Como usar o comando rsync com SSH para automatizar deploys imprimir

  • 0

Como usar o rsync com SSH pra automatizar seus deploys

Oi! Aqui é a Sensei da GeHost 🧘‍♀️ Se você já perdeu tempo arrastando arquivos um por um pro FTP toda vez que atualiza o site, hoje eu vou te ensinar uma mágica boa: o rsync. Com ele você manda só o que mudou pro servidor, de forma segura, usando SSH. Vamos com calma, passo a passo.

O que é o rsync e por que ele é tão bom

O rsync é uma ferramenta de linha de comando que sincroniza pastas entre seu computador e o servidor. A diferença dele pro FTP tradicional é que ele compara os arquivos e envia apenas as diferenças — isso deixa o deploy mais rápido e evita reenviar tudo de novo a cada atualização. Quando combinado com SSH, a conexão fica criptografada, ou seja, seus dados viajam protegidos até o servidor.

💡 Dica da Sensei: pense no rsync como um "espelho inteligente" — ele olha pros dois lados (seu computador e o servidor), percebe o que mudou e só copia essa diferença.

Pré-requisito: acesso SSH habilitado

Antes de mais nada, confirme com o suporte ou no painel do cliente (painel.gehost.com.br) se o seu plano de hospedagem tem acesso SSH liberado, e peça os dados de conexão (usuário, host e porta) que serão usados nos comandos abaixo. Nunca compartilhe essas informações com terceiros.

Passo a passo pra configurar o deploy com rsync + SSH

  1. Gere uma chave SSH no seu computador (se ainda não tiver uma). No terminal, digite:

    ssh-keygen -t ed25519 -C "seu-email@exemplo.com"

    Aperte Enter nas perguntas pra aceitar o caminho padrão. Isso cria duas chaves: uma privada (fica só com você) e uma pública (vai pro servidor).

  2. Copie sua chave pública pro servidor usando o comando ssh-copy-id:

    ssh-copy-id -p PORTA usuario@seu-servidor

    Troque PORTA, usuario e seu-servidor pelos dados que você recebeu do suporte. Isso evita ter que digitar senha toda vez.

  3. Teste a conexão SSH antes de partir pro rsync, só pra garantir que está tudo certo:

    ssh -p PORTA usuario@seu-servidor

    Se conectou sem pedir senha, prontinho, pode fechar essa sessão e seguir em frente.

  4. Rode seu primeiro rsync apontando a pasta local pra pasta de destino no servidor (geralmente public_html):

    rsync -avz -e "ssh -p PORTA" ./meu-projeto/ usuario@seu-servidor:/home/usuario/public_html/

    Repare na barra / no final das pastas — ela é importante! Sem ela o rsync pode criar uma subpasta em vez de sincronizar o conteúdo.

  5. Entenda as opções principais que usamos ali:
    • -a — modo "arquivo", preserva permissões, datas e estrutura de pastas
    • -v — modo detalhado (verbose), mostra o que está sendo enviado
    • -z — comprime os dados durante o envio, deixando mais rápido
    • -e "ssh -p PORTA" — diz ao rsync pra usar SSH na porta configurada
  6. Teste sempre com --dry-run antes de aplicar de verdade:

    rsync -avz --dry-run -e "ssh -p PORTA" ./meu-projeto/ usuario@seu-servidor:/home/usuario/public_html/

    Esse comando simula o envio e mostra o que seria alterado, sem mexer em nada ainda. É a sua rede de segurança!

  7. Use --exclude pra não enviar arquivos que não devem ir pro servidor, como configurações locais ou pastas pesadas:

    rsync -avz --exclude 'node_modules' --exclude '.git' --exclude '.env' -e "ssh -p PORTA" ./meu-projeto/ usuario@seu-servidor:/home/usuario/public_html/

Transformando isso em um script de deploy

Pra não digitar tudo isso toda vez, você pode salvar o comando num arquivo, por exemplo deploy.sh:

#!/bin/bash
rsync -avz --exclude 'node_modules' --exclude '.git' --exclude '.env' \
  -e "ssh -p PORTA" \
  ./meu-projeto/ usuario@seu-servidor:/home/usuario/public_html/
echo "Deploy concluído! ✅"

Depois, dê permissão de execução e rode sempre que precisar atualizar o site:

chmod +x deploy.sh
./deploy.sh

💡 Dica da Sensei: se você usa GitHub Actions, GitLab CI ou outra ferramenta de integração contínua, esse mesmo comando de rsync pode entrar como um passo automático do seu pipeline — assim o deploy acontece sozinho a cada novo commit. Se tiver dúvida de como integrar com a sua ferramenta específica, nosso suporte pode te orientar.

Cuidados importantes de segurança

  • Nunca compartilhe sua chave privada SSH (o arquivo sem a extensão .pub) com ninguém.
  • Prefira sempre autenticação por chave em vez de senha — é mais segura e evita ataques de força bruta.
  • Evite usar --delete no rsync sem antes rodar com --dry-run: essa opção apaga do servidor os arquivos que não existem mais na sua pasta local, e um engano pode remover algo importante.
  • Guarde seu script de deploy fora de repositórios públicos se ele tiver qualquer dado sensível.

Pronto, agora é praticar!

Com esses passos você já consegue automatizar seus deploys de forma tranquila, rápida e segura. Se em algum momento aparecer alguma mensagem de erro de conexão, permissão ou porta, é só chamar o suporte da GeHost — a gente te ajuda a destravar. Bons deploys! 🚀


Esta resposta lhe foi útil?

« Retornar