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

  • 0

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. 🙏


Esta resposta lhe foi útil?

« Retornar