SSH & Avançado 52 visualizações

Como criar um script de shell para automatizar backup manual via SSH

Ver no WHMCS

Como criar um script de shell para automatizar backup manual via SSH

Oi! Aqui é a Sensei da GeHost 🥋 Hoje vou te ensinar algo que deixa qualquer cliente mais tranquilo: como criar seu próprio script de backup rodando via SSH. Isso é ótimo pra quem já tem um pouco de intimidade com terminal e quer ter uma cópia extra do site e do banco de dados, do jeito que preferir — sem depender só da rotina automática do painel.

Este guia é da categoria SSH & Avançado — ele parte do princípio que você já sabe abrir um terminal e digitar comandos simples. Se for sua primeira vez usando SSH, sem pressa: vá com calma, siga passo a passo, e qualquer dúvida nosso suporte está por perto.

Antes de começar

  • Você precisa ter acesso SSH liberado na sua hospedagem. Confira os dados de conexão (host, usuário e porta) em painel.gehost.com.br, na área da sua hospedagem, ou peça essa informação ao nosso suporte.
  • Um programa de terminal (no Windows pode ser o PowerShell, PuTTY ou WSL; no Mac/Linux o Terminal já serve).
  • Saber o nome do seu banco de dados e o usuário/senha dele (caso queira incluir o banco no backup) — isso também fica disponível no cPanel, em "Bancos de Dados MySQL".

Passo 1 — Conecte-se via SSH

Abra o terminal e conecte usando os dados da sua conta:

ssh seu_usuario@seudominio.com.br

Se sua conexão usar uma porta diferente da padrão, adicione -p seguido do número da porta (esse dado também está disponível no painel ou com o suporte).

Passo 2 — Crie o arquivo do script

Dentro do seu diretório pessoal, crie um arquivo novo com um editor de texto simples, como o nano:

nano backup.sh

Passo 3 — Escreva o conteúdo do script

Cole (ou digite) um conteúdo parecido com este, ajustando aos seus dados:

#!/bin/bash

DATA=$(date +%Y-%m-%d)
DESTINO=~/backups
mkdir -p "$DESTINO"

# Backup dos arquivos do site (pasta public_html)
tar -czf "$DESTINO/site-$DATA.tar.gz" ~/public_html

# Backup do banco de dados (troque pelos seus dados)
mysqldump -u SEU_USUARIO_DO_BANCO -p'SUA_SENHA_DO_BANCO' NOME_DO_BANCO > "$DESTINO/banco-$DATA.sql"

echo "Backup concluído em $DATA"

Explicando rapidinho o que cada trecho faz:

  1. DATA — guarda a data de hoje, pra cada backup ter um nome único.
  2. DESTINO — cria (se ainda não existir) uma pasta chamada backups dentro do seu diretório, onde tudo vai ser salvo.
  3. tar -czf — compacta toda a pasta public_html (onde ficam os arquivos do seu site) num único arquivo .tar.gz.
  4. mysqldump — exporta o conteúdo do seu banco de dados para um arquivo .sql.

Depois de digitar, salve e feche o nano com Ctrl+O (grava), Enter, e Ctrl+X (sai).

Passo 4 — Dê permissão de execução

Ainda no terminal, rode:

chmod +x backup.sh

Isso transforma o arquivo em um programa que pode ser executado.

Passo 5 — Rode o backup manualmente

Toda vez que quiser gerar um backup, é só rodar:

./backup.sh

Ao terminar, você verá a mensagem "Backup concluído" e vai encontrar os arquivos dentro da pasta backups, no seu diretório pessoal.

Dica de segurança da Sensei: deixar a senha do banco escrita direto no script não é o ideal. Uma prática mais segura é restringir a permissão do arquivo só pra você com chmod 700 backup.sh, evitando que outros usuários do sistema consigam ler o conteúdo.
Dica de ouro: backup que fica só dentro do próprio servidor não te protege de tudo. Depois de gerar o arquivo, baixe uma cópia pro seu computador (ou outro serviço de armazenamento) usando scp ou um cliente SFTP. Assim você tem a cópia "fora de casa", de verdade segura.

Quer automatizar? (opcional)

Se no futuro você quiser que esse script rode sozinho em vez de manual, dá pra agendar com o cron do próprio servidor, digitando:

crontab -e

E adicionando uma linha (por exemplo, para rodar todo dia à 1h da manhã):

0 1 * * * /home/seu_usuario/backup.sh

Mas isso já é um passo extra — pode ficar só com a rotina manual tranquilamente, sem pressa nenhuma pra automatizar.

Prefere um jeito mais simples, sem terminal?

Se em algum momento preferir algo mais visual, o cPanel já tem uma ferramenta nativa de backup, sem precisar de comando nenhum:

Tela de Backup do cPanel, com opções de Backup Completo e backups parciais de arquivos e banco de dados

Ela fica em cPanel → Backup, e permite gerar e baixar backups completos ou parciais (só arquivos, só banco) direto pelo navegador — uma boa opção complementar ao script.

Precisa de ajuda?

Se travar em qualquer passo — seja pra liberar o acesso SSH, conferir os dados de conexão ou entender alguma mensagem de erro — é só chamar o nosso suporte pelo painel.gehost.com.br. A Sensei e o time estão sempre por aqui pra ajudar. 🙏

Precisa de Ajuda?

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