primero creamos el archivo de conexion al q llamaremos conexion.php
Código PHP:
   <?php
error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
$servername='';//localhost
$dbusername='';//root
$dbpassword='';//tupass
$dbname='';//tuclave
connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbusername,$dbpassword)
{
$link=mysql_connect ($servername,$dbusername,$dbpassword);
if(!$link)
{
die('No puedo Conectarme al Administrador MySQL'.mysql_error());
}
mysql_select_db($dbname,$link)
or die ('No puedo seleccionar la base de datos'.mysql_error());
}
?>    Código PHP:
   <?php
include("conexion.php");
$fechaDeLaCopia = "-".date("d-l-F-Y");    
$ficheroDeLaCopia =$dbname.$fechaDeLaCopia.".sql";
$sistema="show variables where variable_name= 'basedir'";
$restore=mysql_query($sistema);
$DirBase=mysql_result($restore,0,"value");
$primero=substr($DirBase,0,1);
if ($primero=="/") {
    $DirBase="mysqldump";
    
} 
else 
{
    $DirBase=$DirBase."bin\mysqldump";
     
}
 
$executa="$DirBase --host=$servername --user=$dbusername --password=$dbpassword -R -c  --add-drop-table $dbname > $ficheroDeLaCopia";
system($executa);
 
header( "Content-Disposition: attachment; filename=".$ficheroDeLaCopia."");
header("Content-type: application/force-download");
@readfile($ficheroDeLaCopia);
 
unlink($ficheroDeLaCopia);
 
?>    tercero creamos el archivo para restaurar el backup.sql al que llamaremos restore.php
Código PHP:
   <?php
include ("conexion.php");
echo'<title>Restore & backup para windows y linux</title>';
if (!isset ($_FILES["ficheroDeCopia"]))
{
$contenidoDeFormulario="<form action='restoreback.php' method='post' enctype='multipart/form-data' name='formularioDeRestauracion'";
$contenidoDeFormulario.="id='formularioDeRestauracion'>\n";
$contenidoDeFormulario.="<table width='360' border='0' align='center' class='normal' cellspacing='7'>\n";
$contenidoDeFormulario.="<tr>\n";
$contenidoDeFormulario.="<td colspan='4' align=center>Indique el origen del archivo de copia: </td>\n";
$contenidoDeFormulario.="</tr>\n";
$contenidoDeFormulario.="<td colspan='2' align=center><input type='file' name='ficheroDeCopia' id='ficheroDeCopia'";
$contenidoDeFormulario.="size='30'></td>\n";
$contenidoDeFormulario.="<tr>\n";
$contenidoDeFormulario.="<td colspan='3' align='center'><input name='envio' type='submit' ";
$contenidoDeFormulario.="id='envio' value='[ Aceptar ]'></td>\n";
$contenidoDeFormulario.="</tr>\n";
$contenidoDeFormulario.="</tbody>\n";
$contenidoDeFormulario.="</table>\n";
$contenidoDeFormulario.="</form>\n";
echo ($contenidoDeFormulario);
}
 else 
 {
 $archivoRecibido=$_FILES["ficheroDeCopia"]["tmp_name"];
 $destino="./ficheroParaRestaurar.sql";
    
if (!move_uploaded_file ($archivoRecibido, $destino))
{
$mensaje='EL proceso ha fallado';
echo $mensaje;
}
$sistema="show variables where variable_name= 'basedir'";
$restore=mysql_query($sistema);
$DirBase=mysql_result($restore,0,"value");
$primero=substr($DirBase,0,1);
if ($primero=="/") {
    $DirBase="bin/mysql";
} 
else 
{
    $DirBase=$DirBase."bin\mysql";
}
$executa = "$DirBase -h $servername -u $dbusername --password=$dbpassword  $dbname < $destino";
system($executa,$resultado);
if ($resultado) 
{ 
echo "<H3>Error ejecutando comando: $executa</H3>\n";
$mensaje="ERROR. La copia de seguridad no se ha restaurado.";
$cabecera="COPIA DE SEGURIDAD NO RESTAURADA";
echo $mensaje;
echo "<meta http-equiv='Refresh' content='3;url=index.php'>";
} 
else 
{
    $mensaje2="La copia de seguridad se ha restaurado correctamente."; 
    $cabecera2="COPIA DE SEGURIDAD RESTAURADA";
    echo $mensaje2;
    echo "<meta http-equiv='Refresh' content='3;url=index.php'>";
}
 
unlink ("ficheroParaRestaurar.sql");
    
}
 
?>    Código PHP:
   <?php
include("conexion.php");
echo'<title>Restore & backup para windows y linux</title>';
echo'<ul><li><a href="backup.php">Probar backup de BD</a></li>';
echo'<li><a href="restore.php">Probar restore de BD</a></li></ul>';
?>    mmmm.... acabo de recordar algo
 este codigo solo ha sido probado de manera local en S.O (windows y linux) y agradeceria enteramente que alguien lo hiciera de forma remota.
 este codigo solo ha sido probado de manera local en S.O (windows y linux) y agradeceria enteramente que alguien lo hiciera de forma remota.  y me avisara que pasa... No soy ningun experto en php pero me gusta coolaborar en algo...
 y me avisara que pasa... No soy ningun experto en php pero me gusta coolaborar en algo...  
  
 

 Aporte Sistema de respaldo y restauracion de bases de datos
 Aporte Sistema de respaldo y restauracion de bases de datos 

 pero aca esta el nuevo script.... es valido aclarar que este toma todas las bases de datos y las comprime en un solo archivo
 pero aca esta el nuevo script.... es valido aclarar que este toma todas las bases de datos y las comprime en un solo archivo 

 ,espero que lo sepan aprovechar al maximo y que verifiquen aspectos de seguridad
 ,espero que lo sepan aprovechar al maximo y que verifiquen aspectos de seguridad 


 Este tema le ha gustado a 6 personas
Este tema le ha gustado a 6 personas