Como criar um Full Back-up automático da hospedagem cPanel via URL ou CRON

Jefferson A. Voigt
Atualizado em 15/01/2020

Este tutorial ensina como configurar um backup completo automático da hospedagem cPanel, utilizando um script PHP acessível via URL ou agendado pelo cron.

1. Gerando o Token de API no cPanel

Primeiramente, é necessário gerar um Token de API no painel cPanel:

  • Acesse o cPanel da conta de hospedagem.
  • No menu, busque por Gerenciador de Tokens de API.
  • Clique em Criar Token.
  • Dê um nome ao token, como "bkp_full_automatico".
  • Selecione Sem restrições para dar permissão completa ao token.
  • Clique em Criar e copie o Token gerado (será mostrado apenas uma vez).

2. Criando o Script PHP de Backup

Agora, crie um arquivo PHP com o nome backup-cpanel-automatico.php no diretório do seu servidor, por exemplo: https://seudominio.com.br/scripts/backup-cpanel-automatico.php.

Adicione o seguinte código no seu script:

<?php
// =======================
// CONFIGURAÇÕES
// =======================
$tokenSecreto = 'tokensecreto123'; // Token de segurança da URL
$cpanelUser = 'USUARIO_CPANEL'; // Ex: ddrhost
$tokenAPI = 'TOKEN_DO_CPANEL'; // Ex: FSD67T63GRWEFSG7V40XY8Q3RTB0QI4T
$cpanelHost = 'SEU_SERVIDOR'; // Ex: zeus.hostsrv.org
$cpanelPort = 2083;

// =======================
// VERIFICA TOKEN DA URL
// =======================
$tokenRecebido = trim($_GET['token'] ?? '');
if ($tokenRecebido !== $tokenSecreto) {
http_response_code(403);
echo "Acesso negado.";
exit;
}

// =======================
// CHAMADA DA API
// =======================
$url = "https://$cpanelHost:$cpanelPort/execute/Backup/fullbackup_to_homedir";
$headers = [
"Authorization: cpanel $cpanelUser:$tokenAPI"
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

$response = curl_exec($ch);

if (curl_errno($ch)) {
echo "Erro CURL: " . curl_error($ch);
} else {
echo "Resposta da API:\n";
echo $response;
}

curl_close($ch);
?>

Este script iniciará o backup completo e o armazenará no diretório home da conta cPanel.

3. Testando o Script

Após a criação do script, acesse a URL do script pelo navegador ou via curl, passando o token de segurança:

https://seudominio.com.br/scripts/backup-cpanel-automatico.php?token=tokensecreto123

Se o backup for iniciado corretamente, a resposta da API será algo como:

{"data":{"pid":"12345"},"status":1}

4. Agendando o Backup Automático via Cron

Se deseja agendar o backup para ocorrer automaticamente, você pode configurar uma tarefa cron. Para isso, edite o cron do servidor com o seguinte comando:

0 3 * * * /usr/bin/curl -s "https://seudominio.com.br/scripts/backup-cpanel-automatico.php?token=tokensecreto123" >> /home/USUARIO/log-backup.txt 2>&1

Esse comando agendará o script para rodar todos os dias às 03:00h e o log será salvo em /home/USUARIO/log-backup.txt.

5. Onde o Backup é Armazenado

O backup será gerado no diretório home do cPanel da conta, com o nome do arquivo sendo algo como:

/home/USUARIO/backup-MM.DD.YYYY_HH-MM-SS_USUARIO.tar.gz

Você pode acessar o arquivo via Gerenciador de Arquivos ou FTP.

6. Segurança

  • Token de API: Não compartilhe o token gerado publicamente. Mantenha-o em local seguro.
  • Token na URL: Sempre utilize um token forte como tokensecreto123 para proteger o script.
  • SSL/HTTPS: Certifique-se de que o servidor onde o script está hospedado use SSL (HTTPS) para garantir a segurança na comunicação.


Com esse procedimento, você configurou uma solução para realizar backups completos automaticamente via URL ou cron, garantindo maior segurança e integridade dos seus dados.

Este artigo foi útil? 1 usuários acharam isso útil