Backup com php, usando mysql_dump
Publicado por CalRaiden© 19/02/2009
[ Hits: 11.666 ]
Homepage: www.calraiden.com.br
Estava procurando um bom script para realizar um backup via php no mysql através do mysql_dump. E como encontrei bastante dificuldade, acabei montando um próprio com bases nos scripts que encontrei.
A única restrição que faria no seu uso, seria sobre "Allowed memory", se o banco for muito grande, é bem provável que esse erro seja mostrado e precise alterar o php.ini.
O script foi projetado para rodar via linha de comando, mas pode ser via navegador, o que não recomendaria.
#!/usr/bin/php -q
<?php
/**
* Calraiden
* @author Claudionor S.
* @category Backup Mysql
* @package calraiden
* @copyright Copyright (c) 2002-2009 Calraiden. (http://wwwexe.inf.ufsc.br/~claudionor or www.calraiden.com.br)
* @license GPL
* @version $Id: mysqldump.php 7 2008-12-16 10:58:39Z Claudionor S. $
*/
/*Definindo váriveis que serão usada durante execução do script*/
$host = "localhost";//host/endereço do banco
$user = "root";//usuário acesso
$password = "";//password do usuário
$dir_temp = "/tmp";//diretório temporário
$dir_backup = "/home/zeca";//diretório que irá guardar os backups
$database = null;//especificando uma base para backup
/*Pegando data atual que será usada no final dos arquivos (year month day hour minute seconds )*/
$date = date("YmdYHis");
/*INICIANDO SCRIPT*/
/*Conectando*/
$mycon = mysql_connect($host,$user,$password);
if(empty($database))//Caso não tenha sido especificado uma base, selecionar todas
{
/*Selecionando todas as bases existentes*/
$sql = "SHOW DATABASES";
$databases = mysql_query($sql,$mycon) or die .mysql_error();
/*Caso tenha existar bases, Inicnando loop*/
if($databases){
while($row = mysql_fetch_array($databases)){
/*Nome do banco*/
$name = $row[0];
/*Nome do arquivo que será gerado*/
$filename = "{$name}_{$date}";
/*Montando comando*/
$mysqldump = createSQL($host,$user,$password,$name,$dir_temp,$filename);
/*Executando comando*/
execute($mysqldump);
}
}
}else { //backup somente de um banco
/*Nome do arquivo que será gerado*/
$filename = "{$database}_{$date}";
/*Montando comando*/
$mysqldump = createSQL($host,$user,$password,$database,$dir_temp,$filename);
/*Executando comando*/
execute($mysqldump);
}
/*Nome do arquivo de backup*/
$file = "bkp_mysql_{$date}";
/*Comando compactar arquivo no linux*/
$tar = "tar -cvzf $dir_backup/$file.tar.gz {$dir_temp}/*.sql";
/*Executando comando*/
execute($tar);
/*Comando remover arquivos temporarios*/
/*WARNING: Esse comando pode causar danos no seu sistema operacional.
Remove (unlink) the FILE(s).
-f, --force
ignore nonexistent files, never prompt
--version
output version information and exit
--preserve-root
do not remove ‘/’ (default)
*/
$rm = "rm -fv --preserve-root {$dir_temp}/*.sql";
execute($rm);
/**
* Apenas montar o comando mysql_dump
*
* @param String $host, O servidor MySQL
* @param String $user, O nome de usuário
* @param String $password, A senha
* @param String $name, nome do banco que será feito o backup
* @param String $dir_temp, caminho diretório temporário que será salvo o arquivo
* @param String $filename, nome do arquivo que será criado
* @return String $cmd, comando montando para ser executado
*/
function createSQL($host,$user,$password,$name,$dir_temp,$filename)
{
return $mysqldump = "mysqldump --host={$host} --user={$user} --password={$password} --databases {$name}
> {$dir_temp}/{$filename}.sql";
}
/**
* Executa um comando via shell, caso não consigar executar o comando parar o script
* @param String $command, O comando que será executado
*/
function execute($command)
{
if(!shell_exec($command))//error, parar script
exit;
else//success, exibir comando
echo "{$command}\n";
}
?>
Classe de conexão ao banco usando PDO
Script Para Conectar-se Ao Banco de dados PostGreSQL [golfinho/Elefante]
Classe MySQLDatabase [golfinho/Elefante]
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?









