Autor Tema: Sacar backup mysql desde php (script simple y poderoso)  (Read 384 times)

ELCONDE

  • World Forums
  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 703
    • Ver Perfil
    • WF no es un foro es el nucleo de todo
Sacar backup mysql desde php (script simple y poderoso)
« en: 12 de Julio de 2015, 10:29:09 am »

Saludos, aqui de nuevo les traigo un pequeño script muy util.

Algunas ocasiones tenemos que respaldar nuestra amada sql y recurrir a phpmyadmin es algo aburrido y nos hace perder tiempo ahora que pasa si tenemos hacerlo diariamente bueno ahora ya no sera necesario les dejo el código php para que lo copien y lo utilicen.


Código: [Seleccionar]
<?php
 
 
###################
 #
 # Script de Respaldo de Base de Datos 
 # 5 de julio de 2015
 # Ing. elconde 
 # wfzone.net
 #
 ###################
 ############## Fecha y carpeta de salida
 
$fecha_hoy date("Ymd-His");
 
$bak_dir "RUTA_PATH_EN_EL_SERVER_EJEM_/home/htpdocs/miweb/";  //carpeta donde estara nuestro archivo backupsql.php
 #$md = "mkdir $bak_dir"; $a = system($md);
 #$ch = "chmod 777 $bak_dir"; $a = system($ch);
 
############## Base de datos y tablas
 
$db_user "usuario";
 
$db_pass 'pass';
 
$db_name "tubasededatos";
 
$db_host "localhost:3306";
 
$conexion mysql_connect($db_host,$db_user,$db_pass);
 
############## Archivos de Salida
 
$salida_db_ultima $bak_dir.'/ultima.sql'// Datos

 
$salida_db_sql $bak_dir.'/'.$db_name.'-'.$fecha_hoy.'.sql'// Datos
 
$salida_db_tar $bak_dir.'/'.$db_name.'-'.$fecha_hoy.'.tar.gz'//Datos
 
$salida_db_sqlE $bak_dir.'/'.$db_name.'E-'.$fecha_hoy.'.sql'//Estructura ya fue opmitida nadie llama estas variables
 
$salida_db_tarE $bak_dir.'/'.$db_name.'E-'.$fecha_hoy.'.tar.gz'//Estructura ya fue opmitida nadie llama estas variables
 
############## Mensaje para enviar correo de notificación
$mensaje=date("Y-m-d")." Se hizo backup: ".$db_name;
 
$mensaje .= "<br>Archivos:";
 
$mensaje .= "<br>".$bak_dir.'/ultimo.sql.gz'// posible error aki revisar luego
 
$mensaje .= "<br>".$bak_dir.'/'.$db_name.'-'.$fecha_hoy.'.sql.gz';

 

# DESCARGA SQL COMPLETA DATA Y TABLAS
 ########## Salida1
//$dump = "mysqldump --result-file=$salida_db_sql --default-character-set=utf8  --add-locks=FALSE --disable-keys=FALSE --extended-insert --user=$db_user --password=$db_pass $db_name"; // todo en un mismo insert
 
$dump "mysqldump --result-file=$salida_db_sql --default-character-set=utf8  --add-locks=FALSE --disable-keys=FALSE --extended-insert=false --user=$db_user --password=$db_pass $db_name"// con varios inserts ocupa mas sql pero es mas ordenado
 
$a system($dump);
// $comprime = "tar -czf $salida_db_tar $salida_db_sql";
 
$comprime "gzip -9  $salida_db_sql";
 
$a system($comprime);
 
$borra1 "rm $salida_db_sql";
 
$a system($borra1);




//# Dumps
// ########## Salida1
// $dump = "mysqldump --result-file=$salida_db_sql --default-character-set=utf8 --no-create-info --add-locks=FALSE --disable-keys=FALSE --extended-insert --user=$db_user --password=$db_pass $db_name";
// $a = system($dump);
// $comprime = "tar -czf $salida_db_tar $salida_db_sql";
// $a = system($comprime);
// $borra1 = "rm $salida_db_sql";
// $a = system($borra1);
 
   //Estructura tablas 
// $dump = "mysqldump --result-file=$salida_db_sqlE --default-character-set=utf8 --add-locks=FALSE --disable-keys=FALSE --no-data --user=$db_user --password=$db_pass $db_name";
// $a = system($dump);
// $comprime = "tar -czf $salida_db_tarE $salida_db_sqlE";
// $a = system($comprime);
// $borra1 = "rm $salida_db_sqlE";
// $a = system($borra1);
// #######################
 


echo "<h1>Backup OK ELCONDE </h1> <br> se creo <br> $salida_db_sql <br> sin problemas aparentes ";

echo 
"<br>";




$origen "".$bak_dir.'/'.$db_name.'-'.$fecha_hoy.'.sql.gz'//base de datos smf completa :)
$destino "".$bak_dir."/ultimo.sql.gz";
//echo "copiar <br> $origen <br>a<br> $destino  ";
copy ($origen,$destino) or die('No se pudo :(');
 
 
######## Enviando el correo de notificación
$headers "MIME-Version: 1.0\r\n";
 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
 
mail($destinatario="tucorreo@yahoo.com"$subject="Backup sql ".date("Y-m-d"), $mensaje,$headers);
 
######################################################
 ## Para "Inyectar" el Respaldo a la Base de datos
 ######################################################
 ## $inyecta = "mysql --user=$db_user --password=$db_pass --database=$db_name < /home/tusuarioweb/public_html/tupagina/db-XXXXXXX.sql ";
 ## $a = system($inyecta);
 ######################################################
 
?>



Espero se entienda y lo usen es de mucha ayuda para mi, me olvide decir este script tambien envia un email avisandote que se a creado una copia de tu mysql ;) y te da el path, tambien comprime el sql en gz para ayudar a no consumir mucho te espacio de hosting, y por ultimo los backups salen con fecha pero siempre aparecera uno llamado ultimo.sql.gz que es obviamente una copia del ultimo  cada ves que ejecutes el script ultimo.sql.gz sera reemplazado por el nuevo sql ;)

« Last Edit: 12 de Julio de 2015, 10:30:57 am por ELCONDE »

 

Related Topics

  Asunto / Iniciado por Respuestas Último mensaje
35 Respuestas
8811 Vistas
Último mensaje 08 de Enero de 2007, 06:00:49 pm
por cerokooll
7 Respuestas
890 Vistas
Último mensaje 27 de Noviembre de 2007, 03:12:47 am
por xdmaitoxd
6 Respuestas
3269 Vistas
Último mensaje 04 de Mayo de 2009, 03:07:22 am
por eskior
3 Respuestas
562 Vistas
Último mensaje 26 de Julio de 2008, 11:25:41 am
por dr-enfermo
1 Respuestas
112 Vistas
Último mensaje 27 de Junio de 2009, 07:54:46 pm
por llJosell
20 Respuestas
1193 Vistas
Último mensaje 03 de Febrero de 2011, 06:41:31 pm
por KentHD
4 Respuestas
361 Vistas
Último mensaje 11 de Enero de 2010, 01:18:15 am
por Dark-_-lol
0 Respuestas
80 Vistas
Último mensaje 22 de Junio de 2010, 03:06:53 pm
por Yull