25 de abril de 2014

Script para automatizar backup de contas cPanel

Por sidnei

backup

Caso, você queria criar um script que execute automaticamente o backup de uma conta no cPanel, basta seguir os seguintes passos:

1 – Crie um arquivo com o código abaixo e salve como backup.php

<!—INICIO DO SCRIPT—>

$cpuser = “nomedouser”; // coloque o login do cPanel
$cppass = “password”; //coloque a Senha do cPanel
$domain = “dominio.com.br”; // coloque  o Nome do dominio principal no cPanel
$skin = “x3”; //coloque o  Skin usada no cPanel, a LX HOST  usa o x3

//Dados do local de destino do backup
$ftpuser = “ftpusername”; //coloque o Usuário de FTP
$ftppass = “ftppassword”; //coloque a  Senha da conta de FTP
$ftphost = “ftp.dominio.com.br”; //coloque o  Servidor do FTP
$ftpmode = “ftp”; // Modo do FTP (“ftp” para modo activo, “passiveftp” para modo passivo)

$notifyemail = “email@dominio.com.br”; // Email para onde será enviado o relatório do backup

$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 relatório do cron
$debug = 0;

// *********** NÃO EDITE 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; }

$authstr = $cpuser.”:”.$cppass;
$pass = base64_encode($authstr);

$params = “dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup”;

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);

?>

<!—FINAL  DO SCRIPT—>

2- Envie o arquivo para a raiz da sua pasta. Não envie para www, nem para public_html, isto pode comprometer a sua segurança.

3 – Configure a frequência

Acesse a sua conta através do cPanel e procure por “tarefas cron”. E configure conforme os exemplos abaixo:

15 2 * * 1 /usr/local/bin/php /home/sua-conta/backup.php  (backup realizado aos domingos, às 2:15)