Este é um script simples que deriva do processo de backup do cPanel e permite gerar Full Backups ou backups totais de uma conta cPanel (dados+emails+bases de dados) usando PHP. Este script torna a tarefa de fazer backup do teu site mais simples e consistente permitindo gerar e manter backups da sua conta de uma forma automática.
Nunca se esqueça, “mais vale um backup na mão, do que os seus dados a voar”
.
.
Criar um ficheiro backup.php com o seguinte conteudo:
<?php
// Script PHP que permite fazer backups automáticos periódicos do cPanel para por exemplo um FTP remoto.
// Este script contém PASSWORDS. Coloque este script num lugar seguro! (coloque na directoria home e não em /www/)// ********* OS SEGUINTES ITEMS NECESSITAM DE SER CONFIGURADOS *********
// Info required for cPanel access
$cpuser = “nomedouser”; // Nome do user usado para login no cPanel
$cppass = “password”; // Password usada para login no cPanel
$domain = “dominio.com”; // Nome do dominio onde o cPanel corre
$skin = “x3″; // Parametro da skin/tema usado no cPanel. A maioria actualmente usa o x3 ou o x// Informação necessária para o host de FTP
$ftpuser = “ftpusername”; // Nome do user da conta de FTP do servidor de destino
$ftppass = “ftppassword”; // Password da conta de FTP
$ftphost = “ftp.dominio.com”; // Dominio ou endereço IP do servidor de destino
$ftpmode = “ftp”; // Modo do FTP (“ftp” para modo activo, “passiveftp” para modo passivo)// Informação de notificação
$notifyemail = “email@dominio.com”; // Endereço de email para enviar os resultados do backup// Modo seguro ou não seguro
$secure = 0; // Coloque 1 para usar SSL (Necessita de suporte SSL), ou deixe em 0 (zero) para usar o normal http// Coloque a 1 para adicionar informação adicional de debug no log do cron
$debug = 0;// *********** NÃO EXISTE NECESSIDADE DE MUDAR MAIS NADA ABAIXO DESTA LINHA *********
if ($secure) {
$url = “ssl://”.$domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;
}$socket = fsockopen($url,$port);
if (!$socket) { echo “Falha ao abrir a ligação via socket… Saindo daqui!\n”; exit; }// Encode authentication string
$authstr = $cpuser.”:”.$cppass;
$pass = base64_encode($authstr);$params = “dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup”;
// Fazer o POST ao cPanel
fputs($socket,”POST /frontend/”.$skin.”/backup/dofullbackup.html?”.$params.” HTTP/1.0\r\n”);
fputs($socket,”Host: $domain\r\n”);
fputs($socket,”Authorization: Basic $pass\r\n”);
fputs($socket,”Connection: Close\r\n”);
fputs($socket,”\r\n”);// Apanhar a resposta ao POST mesmo que não se faça nada com ela.
while (!feof($socket)) {
$response = fgets($socket,4096);
if ($debug) echo $response;
}fclose($socket);
?>
Para configurar a forma como os backups serão efectuados tens de criar um Cron Job no cPanel:
15 2 * * * /usr/local/bin/php /home/youraccount/backup.php
(Corre todos os dias Às 2:15 da manhã)
ou
15 2 * * 1 /usr/local/bin/php /home/youraccount/backup.php
(Corre todos os domingos às 2:15 da manhã)
.
.
Dúvidas e questões é só deixar aqui os teus comentários!
.


Publicado em
Tags:




Ótimo, mas não estou conseguindo realizar o backup. O problema é que não retorna erro algum.
A sintaxe tem mesmo esta espaço entre …/php /home:?
15 2 * * 1 /usr/local/bin/php /home/youraccount/backup.php
De toda forma obrigado.
Sim, mas tem de substituir youraccount pelo nome da sua conta cpanel
mt bom o post, vai me ajudar bastanteeeeee..
tbm tenho a mesma necessidade do romulo,contratei um plano de revenda para hospedar meus sites..
teria alguma forma de fazer um script para realizar fullbackup de todos os dominios da revenda?
abraços.