Servidor & DevOps 37 visualizações

Como automatizar o deploy de atualizações usando um script de shell (bash) no VPS

Ver no WHMCS

Como automatizar o deploy de atualizações usando um script de shell (bash) no VPS

Olá, querido(a) desenvolvedor(a)!

Seja bem-vindo(a) ao seu novo passo rumo à automação e produtividade. Aqui, na GeHost, entendemos que você merece focar no que realmente importa: criar, inovar e entregar valor — não ficar repetindo tarefas manuais. Por isso, hoje vamos aprender juntos como automatizar o deploy de atualizações no seu servidor com um simples script de shell (bash).

Se você já tem um VPS com acesso root (ou acesso administrativo via SSH), esse guia é para você. Vamos transformar o processo de atualizar seu site em um clique — ou melhor, em um comando.

Sensei diz: "A automação não é para substituir o programador. É para liberar o programador."

Passo 1: Acesse seu servidor via SSH

Antes de tudo, você precisa se conectar ao seu servidor. Para isso, use um cliente SSH como Putty (Windows), Terminal (macOS/Linux) ou qualquer outro que suporte conexão SSH.

Use o endereço IP do seu VPS (consulte seu painel) e suas credenciais de acesso (usuário e senha ou chave SSH).

Tela de login do cPanel com campos de usuário e senha

Passo 2: Crie um script de shell

No seu servidor, vamos criar um arquivo com extensão .sh. Esse será o nosso "manual automático".

Abra o terminal e digite:

nano deploy.sh

Isso abrirá o editor de texto nano. Agora, cole o seguinte conteúdo (ajuste conforme seu projeto):

#!/bin/bash

# === Configurações ===
REPO_DIR="/home/seu_usuario/public_html"  # Caminho do seu site
GIT_REPO="https://github.com/seu_usuario/seu_projeto.git"  # URL do repositório

# === Início do script ===
echo "🔄 Iniciando atualização automática..."

# Navega até o diretório do projeto
cd "$REPO_DIR" || { echo "❌ Diretório não encontrado."; exit 1; }

# Atualiza o código do Git
git pull origin main || { echo "❌ Falha ao atualizar o código."; exit 1; }

# Limpa cache (se necessário)
rm -rf /home/seu_usuario/public_html/cache/*

# Reinicia o serviço (se aplicável)
# systemctl restart apache2  # Exemplo para Apache

echo "✅ Atualização concluída com sucesso!"

Dica: Substitua seu_usuario e seu_projeto pelo seu nome de usuário e nome do repositório. Se seu projeto usa outra branch (ex: dev), troque main por ela.

Passo 3: Torne o script executável

Salve o arquivo (Ctrl+O no nano), saia (Ctrl+X), e agora vamos tornar o script executável:

chmod +x deploy.sh

Pronto! Agora seu script pode ser rodado diretamente.

Passo 4: Teste o script manualmente

Execute o script com:

./deploy.sh

Se tudo estiver certo, você verá uma mensagem de sucesso. Se houver erro, verifique os caminhos e permissões.

Passo 5: Automatize com o cron (agendamento)

Para que o script se execute automaticamente, vamos usar o cron, o agendador do Linux.

Abra o cron com:

crontab -e

Adicione esta linha para rodar o script a cada 15 minutos:

*/15 * * * * /home/seu_usuario/deploy.sh

Salve e saia (no nano: Ctrl+O → Enter → Ctrl+X).

Pronto! Agora seu site será atualizado automaticamente a cada 15 minutos.

Sensei diz: "A verdadeira liberdade está em não ter que fazer nada — desde que o sistema esteja bem configurado."

Dicas finais para segurança e tranquilidade

  • Use chaves SSH em vez de senha para acesso ao servidor. É mais seguro e permite autenticação sem senha.
  • Não deixe o script exposto em pastas públicas. Mantenha-o em um diretório seguro (ex: /home/seu_usuario/scripts).
  • Teste sempre o script manualmente antes de agendá-lo.
  • Monitore os logs do cron com crontab -l ou verifique o arquivo de log do sistema (ex: /var/log/syslog).

Quer mais? Vamos juntos!

Se você quiser, posso te ajudar a adaptar esse script para seu framework (ex: Laravel, WordPress, Node.js). É só me chamar no suporte da GeHost — estamos aqui para você.

Seu trabalho merece ser fácil. E com a automação, ele é.

Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.