Backup com php, usando mysql_dump
Publicado por CalRaiden© 19/02/2009
[ Hits: 11.221 ]
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"; } ?>
Gravando conteudo de uma caixa de texto no banco de dados [golfinho/Elefante]
Passe a data no formato aaaa-dd-mm e retornará dd/mm/aaaa.
Classe MySQLDatabase [golfinho/Elefante]
Sistema que simula bd com arquivo TXT
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Gentoo bane contribuições de código feitas com IA (7)
Todo erro sempre gera um acerto... (11)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba