[2] Comentário enviado por
igtoth em 14/06/2004 - 09:27h:
Muito bom o conceito do script.... mas não roda! Fiz algumas correções e o resultado esta ai...
A proposito, caso você deseje que o backup seja feito automaticamente inclua a linha no cron da maquina:
#crontab -e
0 1 * * * /usr/bin/php -q /algum_lugar/backup.php
---------------------------------------------------
<?php
$nome_servidor="NOME_DO_SERVIDOR";
$local_backup="/algum_lugar/outra_pastas"
$host = "10.10.10.10"; // host do banco
$user = "usuario"; // usuário do banco
$senha = "senha"; // senha do banco
$msg[0]="---------------------------------------------------------------\n";
$msg[1]="Iniciando Script para backup do servidor $nome_servidor\n";
$msg[2]="Conectando ao banco... ";
$msg[3]="\n*** ERRO *** Impossivel conectar ao banco!";
$msg[4]="Fazendo backup do banco...\n";
$msg[5]="\tBACKUP OK!\n";
$msg[6]="*** ERRO *** Nao foi possivel fazer backup!\n";
$msg[7]="Criando pacote tar...\n";
$msg[8]="Apagando arquivos temporarios (sql)... ";
$msg[9]="\n\tPACOTE OK!\n";
$msg[10]="\n*** ERRO *** Nao foi possivel criar pacote tar!";
$msg[11]="\n*** ERRO *** Nao foi possivel apagar os arquivos temporarios!";
shell_exec("clear"); echo $msg[0]; echo $msg[1]; echo $msg[0];
// conectando ao banco
echo $msg[2];
$dbc = mysql_connect($host, $user, $senha);
if($dbc){
echo("\tOK!\n");
} else {
echo $msg[3];
$erro="echo $data - $msg[3] > $local_backup/erro.log";
shell_exec($erro);
exit();
}
$m = mysql_select_db("test", $dbc);
$sql = "SHOW DATABASES";
$sts = mysql_query($sql,$dbc) or die (mysql_error());
$data = date("Y-m-d");
// fazendo backup
echo $msg[0]; echo $msg[4];
while($row = mysql_fetch_array($sts)){
$nome = $row[0];
echo ("$nome\t\t=");
$NARQUIVO = $nome."-".$data;
$comando = "mysqldump --host=$host --user=$user --password=$senha --databases $nome > $local_backup/$NARQUIVO.sql";
if(shell_exec($comando)==""){
echo $msg[5];
} else {
echo $msg[6];
$erro="echo $data - $msg[6] > erro.log";
shell_exec($erro);
}
}
$arquivo = "Backup-MySQL-".$data."-".$nome_servidor;
// criar pacote com todos os arquivos .sql
echo $msg[0]; echo $msg[7];
$comando = "tar -cvzf $local_backup/$arquivo.tar.gz $local_backup/*.sql";
if(shell_exec($comando)){
echo $msg[9];
} else {
echo $msg[10];
$erro="echo $data - $msg[10] > $local_backup/erro.log";
shell_exec($erro);
}
// apagar arquivos .sql
echo $msg[0]; echo $msg[8];
$comando = "rm -f $local_backup/*.sql";
if(shell_exec($comando)==""){
echo("OK!\n");
} else {
echo $msg[11];
$erro="echo $data - $msg[11] > $local_backup/erro.log";
shell_exec($erro);
exit();
}
echo $msg[0];
?>