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:
- DATA — guarda a data de hoje, pra cada backup ter um nome único.
- DESTINO — cria (se ainda não existir) uma pasta chamada backups dentro do seu diretório, onde tudo vai ser salvo.
- tar -czf — compacta toda a pasta public_html (onde ficam os arquivos do seu site) num único arquivo .tar.gz.
- 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:
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. 🙏