Crea backups de tu BD mysql fácilmente desde PHP
Cualquier webmaster que disponga de una web con una base de datos quiere poder realizar copias de la misma sin mucha compliciación, pues no siempre dispone de conocimientos informáticos para realizarla desde aplicaciones externas a la web (como PHPMyAdmin) o simplemente desea un método más rápido para disponer de una copia a la última.
Por ello, os presento un pequeño script php con el que realizar copias de la base de datos completa en segundos y guardarla en un zip.

El script hará uso del programa mysqldump que viene con el mysql. Este programa permite crear una consulta SQL con la cual generar nuestra BD de forma sencilla. Nuestro script llamará a dicho programa, volcará el resultado sobre un fichero temporal, comprimirá en formato zip dicho fichero y forzará al navegador para su descarga.
Para la compresión en ZIP, haremos uso de la clase zipfile, disponible aquí.
El código php es el siguiente:
<?php
/*
*Autor: ElChicoSinHada
*Fecha: 2-Feb-2009. Licencia: GPL 3
*/
//Añadir comprobaciones de seguridad para que no haga un backup cualquier, depende del sistema usadorequire ("zipfile.php");
//Obtenemos la fecha y hora
$hora = date("H-i-s");
$fecha = date("d-m-Y");
//Creamos el nombre del fichero
$filename = "NOMBRE-$fecha($hora)";
//Preparamos la cabecera
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$filename.zip");$usuario="USER"; // Usuario de la base de datos
$pass="PASS"; // Contraseña
$bd="NOMBREBD"; // Nombre de la Base de Datos//Creamos un txt en temporales
passthru("touch /tmp/sql.txt", $resultado);
//Ejecutamos el comando msyqldump y guardamos el resultado en el archivo temporal.$ejecutar = "mysqldump -u $usuario --password=$pass --opt $bd > /tmp/sql.txt";
passthru($ejecutar, $resultado);//Generamos el zip
$zipfile = new zipfile();
$zipfile->add_file(implode("",file("/tmp/sql.txt")), "$filename.txt");
//Borramos el archivo, ¡muy importate!
passthru("rm /tmp/sql.txt", $resultado);
//Mostramos el zip para guardarlo
echo $zipfile->file();
?>
Este script está pensando para servidores Unix, si lo vas a usar en un entorno Windows, modifica las rutas de los ficheros temporales y coloca la dirección completa hasta el ejecutable de msyqldum.
Con solo acceder al url del script comenzará la descarga, por ello, es conveniente colocar previamente un filtro para que solo los usuarios administradores puedan completar el script. Si no dispones de usuarios, se podría hacer mediante un formulario que envie el usuario y la contraseña en vez de introducirlos directamente en el código php.
- Visibilidad:
-
- Inicie sesión o regístrese para enviar comentarios
JUEGOS DESTACADOS
Pokémon | Pokémon Escarlata y Purpura | The Legend of Zelda: Tears of the Kingdom | Bayonetta 3 | Monster Hunter Rise | Super Mario 3D World + Bowser's Fury | Xenoblade Chronicles 3 | Kirby | Kirby’s Return to Dream Land Deluxe | Mario Kart 8 Deluxe | The Legend of Zelda | Monster Hunter Stories 2: Wings of Ruin | Uncharted 4: El Desenlace del Ladrón | Yo-Kai Watch | Ratchet & Clank | Resident Evil 4 Remake | Dynasty Warriors 9 | THE KING OF FIGHTERS XV | Monster Hunter: World | Star Wars | Animal Crossing | Nioh | Street Fighter V | Dragon Ball FighterZ | Hitman | Life is Strange: True Colors | Super Smash Bros. Switch | Metal Gear Solid V | DRAGON QUEST XI | Final Fantasy XV | Dark Souls III | Resident Evil Village | Saints Row | The Last of Us Parte I | SOULCALIBUR VI | Marvel's Guardians of the Galaxy | Horizon Forbidden West | Horizon Zero Dawn | Ghost of Tsushima: Director’s Cut | God of War | Pokémon X Y | Pokémon Rubi Omega y Zafiro Alfa | Pokemon: Let's Go Pikachu! y Eevee! | Pokémon Ultrasol y Ultraluna | Pokémon Sol y Luna | Pokémon Diamante Brillante y Perla Reluciente | Leyendas Pokémon: Arceus | Shadow of the Colossus | The Legend of Zelda: Breath of the Wild | God of War Ragnarök