[Arquivado]Backup Automático Com Mysql E Php

noobinhu
em Noticias - Arquivo

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

Bom, todo servidor e site que tenha conteúdo deseja ter um backup diário do mesmo, ou semanal que seja, eu fiz um script em PHP que ajuda muito nesta requisição.

 

Ele gera um backup do banco de dados configurado e automaticamente salva em um arquivo este backup, permitindo você ter uma cópia diária do seu banco de dados sem precisar ficar mexendo em nada.

 

Primeiro meu script:

<?php

// configs

$host = 'localhost';

$user = 'root';

$pass = '';

$db = 'information_schema';

$print_result = true; //true to print able, false to print disable

$save_backup = true; //true to save able, false to save disable

$backup_file_name = "automatic_backup"; //where will be saved if $save_backup is true

$backup_file_format = "sql"; // format (for example, automatic_backup_140409.sql)

// end configs

 

$con = mysql_connect($host,$user,$pass);

mysql_select_db($db);

 

$tables = mysql_list_tables($db);

$backup = '-- Yunie Auto Backup System

-- Database: '.$db.'

-- Date: '.date("d/m/y", time()).'';

 

$backup .= '

 

 

';

 

while ($tables_result = mysql_fetch_assoc($tables))

{

$tablename = $tables_result['Tables_in_'.$db.''];

 

 

$backup .= '--

-- `'.$tablename.'` table

--

';

$backup .= 'DROP TABLE IF EXISTS `'.$tablename.'`;

CREATE TABLE IF NOT EXISTS `'.$tablename.'`

(

';

$fieldname = '';

$fields_array = array();

$table_fields = mysql_query("SHOW COLUMNS FROM `".$tablename."`");

$primary_key = '';

while ($fields_result = mysql_fetch_assoc($table_fields))

{

 

if (!empty($fieldname))

{

$backup .= ',

';

}

 

 

$fieldname = $fields_result['Field'];

$fields_array[] = $fieldname;

$type = $fields_result['Type'];

$primary = '';

$increment = '';

if ($fields_result['Extra'] == 'auto_increment')

{

$increment = ' AUTO_INCREMENT';

}

$null = 'NULL';

if ($fields_result['Null'] == 'NO')

{

$null = 'NOT NULL';

}

 

if ($fields_result['Key'] == 'PRI')

{

$primary_key = $fieldname;

}

 

$default = $fields_result['Default'];

if ($default && empty($increment))

{

$default = ' DEFAULT \''.$default.'\'';

}

else

{

$default = '';

}

$backup .= '`'.$fieldname.'` '.$type.' '.$null.''.$increment.''.$default.'';

 

}

 

if (!empty($primary_key))

{

$backup .= ',

PRIMARY KEY (`id`)';

}

 

$backup .= '

);';

$fields_list = '(';

$field_num = 1;

foreach(array_keys($fields_array) as $keys)

{

$fields_list .= '`'.$fields_array[$keys].'`';

 

if ($field_num != sizeof($fields_array))

{

$fields_list .= ', ';

}

 

$field_num++;

}

 

$fields_list .= ')';

 

 

$rows_fields = mysql_query('SELECT * FROM `'.$tablename.'`');

echo mysql_error();

 

$inserts = mysql_num_rows($rows_fields);

if ($inserts > 0)

{

$backup .= '

 

INSERT INTO `'.$tablename.'` '.$fields_list.' VALUES

';

 

$insert_num = 0;

 

while ($rows_result = mysql_fetch_assoc($rows_fields))

{

$insert_num++;

$field_num = 1;

$backup .= '(';

foreach(array_keys($rows_result) as $keys)

{

$value = $rows_result[$keys];

$value = str_replace("'","''",$value);

if (!is_numeric($value))

{

$backup .= "'".$value."'";

}

else

{

$backup .= $value;

}

if ($field_num != sizeof($rows_result))

{

$backup .= ',';

}

 

$field_num++;

}

 

$backup .= ')';

 

if ($insert_num == $inserts)

{

$backup .= ';';

}

else

{

$backup .= ',

';

}

 

}

 

}

 

$backup .= '

 

';

 

}

if ($print_result == true)

{

echo '<textarea rows="30" cols="100" wrap="OFF">'.$backup.'</textarea>';

}

 

if ($save_backup == true)

{

$file = fopen($backup_file_name.'_'.date("dmy", time()).'.'.$backup_file_format.'', "w+");

fwrite($file, $backup);

fclose($file);

}

?>

 

Configure em negrito, e faça o que quiser com este arquivo :>

 

Para torná-lo automático você precisa de um pouco mais de trabalho no seu site, usando include de certo em certo tempo quando um usuário visitá-lo ele checa quando foi feito o último backup, se o tempo for > que ele daria então o include executando o script sem o usuário perceber. Já que ele pode não exibir nada, dependendo da configuração.

 

Façam bom uso,

Yunie.

Heroi do Barzim

Calm down, I'm here.
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 05/03/09Posts: 11Char no Tibia: Heroi

Cada vez me surpreendo mais contigo, cê é bom hein fi..apesar de eu não entender nada disso. ;p




Herói dominará o XTibia e acabará com todos as 'LENDAS'










Put A Keep Are You

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/04/09Posts: 2Char no Tibia: Rei Zoador Xtibia

pow mete bala nessa porra hehe Parabens ai continue assim meurmao voce e scripter mesmo me passa seu msn ai

Vou ser o rei Do Xtibia ou pelomenos do Barzinho


Engracado ???


metas:
Ser popular{ }
Mod Barzinho { }
Engracado { }
misterioso{X}
Nao revelar sua verdadeira identidade{X}
Melhor que o Powerzin { XXXXXXXXXXX }
Melhor que o Heroi do Barzin { XXXXXX }

Aguardem duvido alguem descobrir minha conta verdadeira aqui no Xtibia muahah


Imagens fora das regras de assinaturas.

http://www.xtibia.com/forum/3-Assinaturas-t80461.html

By VaL.

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

ah só lembrando que pra uma segurança melhor, ali no nome do arquivo, você pode adicionar um diretório junto...

seguindo o exemplo:

dir/file

Diogo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/03/06Posts: 366

Muito bom brother!

 

Só poderia ter colocado usando a tag [ CODE ], para manter a identação que o quote come.

 

Abraços.

Contato: não entre em contato

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

Poutz cara tuh eh froidz !!!

 

...Excelente simplesmente é a melhor definição !!!

 

Grato pelo post !!

 

ty ;D

- Xtibia.com seu site de Tibia e OTServer ! -

CodigosnaWeb

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/07/09Posts: 3

Já resolveu o problema do importar?

gutaoh

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/09/10Posts: 7

Olá. sou leigo nesse assunto,

Tem como você explicar melhor como uso passo a passo?

 

seria uma grande gentileza, até porque vejo que não é apenas eu que tenho essa duvida.

 

onde coloco esse script e como automatiza-lo?

 

Agradeço pela compreensão.

zocrinhoLost

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/02/11Posts: 18

BOOOA !

Stigal

don't ever stop...
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 28/11/10Posts: 3402Gênero: Masculino
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord Xtibia | Skype: @mrooger

 

OTpanel