Backup com php, usando mysql_dump
Publicado por CalRaiden© 19/02/2009
[ Hits: 11.377 ]
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"; } ?>
Função para criação de grid (tabela) dinâmico
Formas de trazer dados da consulta utilizando as funções mysql_fetch_array e mysql_fetch_row
Classe de conexao com banco de dados mysql
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Acabei de formatar meu ssd e deu erro (3)
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (5)
Bash ao invés de Fish no CachyOS (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta