Ir para conteúdo
  • Cadastre-se

Tutorial completo de Como criar Full Backups dos ultimos 7 e remover antigos em uma revenda


Antonio Carlos S Jr

Posts Recomendados

E ai galera procurei muito na internet e no fórum e depois de muito revirar encontrei a solução completa de como criar full backups com retenção de 7 dias e deletar os mais antigos.

 

Mas vou fazer um simples passo a passo aqui para ajudar muitas pessoas que devem ter já quebrado a cabeça como eu.

 

Sei que se tiver um vps ou dedicado podemos utilizar as ferramentas do próprio whm mas em uma revenda ou até em um site hospedado isso é impossível.

 

Então vamos ao que interessa.

 

Utilizei o Script gerado pelo site. http://www.ericzhang.me/projects/cpanel-auto-backup/ com algumas modificações porém já postei ele ali embaixo explicadinho.

 

Crie um arquivo.php eu daria nome de autobackup.php ou coisa parecida, PORÉM ATENÇÃO nunca coloque esse arquivo nas pastas www ou public_html para não ficar vulnerável.

<?php
/*
cPanel Backup Script
Generated by http://www.ericzhang.me/projects/cpanel-auto-backup/
*/

$auth = base64_encode("user:senha"); // usuário e senha do cpanel da conta local
$domain = "www.seusite.com.br";
$theme = "x3";
$secure = false;
$ftp = true;
$ftpserver = "999.99.999.999"; // Ip do seu Remote Backup
$ftpusername = "user";
$ftppassword = "pass";
$ftpport = "21";
$ftpdirectory = "/public_html/";

if ($secure) {
    $url = "ssl://" . $domain;
    $port = 2083;
} else {
    $url = $domain;
    $port = 2082;
}
$socket = fsockopen($url, $port);
if (!$socket) {
    exit("Failed to open socket connection.");
}
if ($ftp) {
    $params = "dest=ftp&server=$ftpserver&user=$ftpusername&pass=$ftppassword&port=$ftpport&rdir=$ftpdirectory&submit=Generate Backup";
} else {
    $params = "submit=Generate Backup";
}
fputs($socket, "POST /frontend/" . $theme . "/backup/dofullbackup.html?" . $params . " HTTP/1.0\r\n");
fputs($socket, "Host: $domain\r\n");
fputs($socket, "Authorization: Basic $auth\r\n");
fputs($socket, "Connection: Close\r\n");
fputs($socket, "\r\n");

while (!feof($socket)) {
    $response = fgets($socket, 4096);
    echo $response;
}
fclose($socket);
?>

Crie uma tarefa cron para todos os dias, as 0h e 1m  colocando a linha seguinte.

php -q /home/usuario-da-hospedagem/pasta-onde-esta-o-script/auto-backup.php

Pronto se você fez tudo certo, seus backups serão gerados todos os dias as 0h e 1m porém sempre enche muito de uns arquivos temps e depois de uns dias vem aquela dor de cabeça, puxa eu queria somente que guardasse os ultimos 5 ou 7 dias.

 

Bora para o script que deleta todo esse lixo.tmp e arquivos antigos.

 

Basta acessar agora seu servidor de backups, na pasta onde estão sendo armazenados os backups e criar um arquivo com o nome que vc quiser.

tipo remove-backups-antigos.php com o conteudo abaixo.

<?php

//DELETA OS ARQUIVOS COMPACTADOS com mais de 7 dias
$files = glob("*.tar.gz");
foreach($files as $file) {
if(is_file($file)
&& time() - filemtime($file) >= 7*24*60*60) { // Apagar com mais de 7 dias
unlink($file);
}
}

//DELETA OS ARQUIVOS TMP com mais de 4 horas
$files = glob("*.tmp");
foreach($files as $file) {
if(is_file($file)
&& time() - filemtime($file) >= 4*60*60) { // Apagar com mais de 4 horas
unlink($file);
}
}
?>

OPAAA, quase me esqueci. Crie também uma tarefa cron para esse arquivo mas agora no seu servidor de backups apontando para o script dentro da pasta onde ele está armazenado.

 

Ae galera, qualquer dúvida por favor poste aqui no fórum pois se me perguntar por email as outras pessoas que podem estar tendo a mesma dificuldade que você não terão a resposta.

 

Abraços a todos.

Link para o comentário
Compartilhar em outros sites

Parabéns pela iniciativa.

Estes backups, como usam FTP, poderiam ser armazenados em qualquer servidor, como numa conta de revenda ou uma conta de hospedagem daquelas de espaço ilimitado, pouco processamento e baixo custo.. :D

Colegas do fórum experientes em segurança e PHP, o que acham?

 

Então VTFerreira, pode ser usado assim também mas eu não aconselho por que se chega dar galho no servidor as informações podem serem apagadas.

mas pode sim sem dúvida.

Link para o comentário
Compartilhar em outros sites

Parabéns pela iniciativa.

Estes backups, como usam FTP, poderiam ser armazenados em qualquer servidor, como numa conta de revenda ou uma conta de hospedagem daquelas de espaço ilimitado, pouco processamento e baixo custo.. :D

Colegas do fórum experientes em segurança e PHP, o que acham?

 

Recomendo a transferência em SFTP ou SCP. Normalmente quando envio backups por FTP, o arquivo fica corrompido.

 

Além de ser mais seguro.. 

 

 

Luciana a intenção nesse caso foi fazer backup de contas individuais, porém se alguém se habilitar em adaptar seria bem legal.

 
Para fazer o backup de diversas contas (sendo uma revenda), teria de ter uma lista de todas as senhas.
 
Se for padrão em todas as contas, é só adaptar o script para acessar o WHM e fazer download do CSV das contas (fetchcsv).. aí um foreach resolve!
Link para o comentário
Compartilhar em outros sites

 

Recomendo a transferência em SFTP ou SCP. Normalmente quando envio backups por FTP, o arquivo fica corrompido.

 

Além de ser mais seguro.. 

 

 
 
Para fazer o backup de diversas contas (sendo uma revenda), teria de ter uma lista de todas as senhas.
 
Se for padrão em todas as contas, é só adaptar o script para acessar o WHM e fazer download do CSV das contas (fetchcsv).. aí um foreach resolve!

 

 

 

Valeu Rodrigo mas no caso você saberia como adaptar esse script para Sftp?

Link para o comentário
Compartilhar em outros sites

Valeu Rodrigo mas no caso você saberia como adaptar esse script para Sftp?

Se não me engano, o cPanel só suporta SCP ou FTP/FTP Passivo.

Pra adaptar, teria que olhar a página de criação dos fullbackups do cPanel e ver qual o nome dos parâmetros que devem ser alterados na linha '$params = "dest='

Link para o comentário
Compartilhar em outros sites

Utilizando o script acima, existe a possibilidade de restaurar os backups realizados sem ter acesso root ao servidor? Ou seja, sendo revenda por exemplo?

Fico no aguardo!

 

O script acima é apenas para fazer backup, e não restauração.

 

Para restaurar sem root vai depender da empresa que você tem a revenda, algumas liberam para clientes acesso a um plugin de restauração de backups.

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?