Documente Academic
Documente Profesional
Documente Cultură
$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);
?>
{
$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");
}
?>
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.
y me avisara que pasa... No soy ningun experto en php pero me gusta coolaborar en
algo...
echo "OK.\r\n";
// Tomar un listado de bases de datos
$q = mysql_query("SHOW DATABASES");
// Volcar todas las bases
while ($database = mysql_fetch_row($q))
if ($database[0] != "information_schema" && $database[0] != "mysql")
{
// Nombrar archivo
$filename = "{$database[0]}.sql";
$tempfile = date("YmdHis", time()) . ".~swap";
echo date("Y-m-d H:i", time()) . " Volcando '$filename' ... ";
$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";
}
// Volcar datos
$executa="$DirBase --host=$myhost --user=$myuser -password=$mypass -R -c --add-drop-table {$database[0]} > $OUTDIR$tempfi
le";
system($executa,$resultado);
echo "OK.\r\n"
. date("Y-m-d H:i", time()) . " Agregando '$filename' a '$outfil
e' ... ";
// Agregar archivo al ZIP
$zip->addFile($OUTDIR.$tempfile, $filename);
// Recordar los temporales utilizados
$DUMPFILES[] = $OUTDIR.$tempfile;
echo "OK.\r\n";
}
// Desconectar de la base de datos
mysql_close($DB);
// Cerrar archivo ZIP
$zip->close();
// Eliminar temporales. Importante hacerlo DESPUS de cerrar el ZIP
foreach($DUMPFILES as $file)
unlink($file);
// Elminar archivos antiguos
echo date("Y-m-d H:i", time()) . " Eliminando copias antiguas...\r\n";
$D = opendir($OUTDIR);
quisiera que probaran ambos aportes de forma remota...y si es posible avisarme que
sucede....se los agradeceria
__________________
Un nuevo horizonte
Ver original
1. <?php
2. include ("conexion.php");
3. echo'<title>Restore & backup para windows y linux</title>';
4. if (!isset ($_FILES["ficheroDeCopia"]))
5. {
6. $contenidoDeFormulario="<form action='restoreback.php'
method='post' enctype='multipart/form-data'
name='formularioDeRestauracion'";
7. $contenidoDeFormulario.="id='formularioDeRestauracion'>\n";
8. $contenidoDeFormulario.="<table width='360' border='0'
align='center' class='normal' cellspacing='7'>\n";
9. $contenidoDeFormulario.="<tr>\n";
10. $contenidoDeFormulario.="<td colspan='4' align=center>Indique el
origen del archivo de copia: </td>\n";
11. $contenidoDeFormulario.="</tr>\n";
12. $contenidoDeFormulario.="<td colspan='2' align=center><input
type='file' name='ficheroDeCopia' id='ficheroDeCopia'";
13. $contenidoDeFormulario.="size='30'></td>\n";
14. $contenidoDeFormulario.="<tr>\n";
15. $contenidoDeFormulario.="<td colspan='3' align='center'><input
name='envio' type='submit' ";
16. $contenidoDeFormulario.="id='envio'
value='[ Aceptar ]'></td>\n";
17. $contenidoDeFormulario.="</tr>\n";
18. $contenidoDeFormulario.="</tbody>\n";
19. $contenidoDeFormulario.="</table>\n";
20. $contenidoDeFormulario.="</form>\n";
21. echo ($contenidoDeFormulario);
22. }
23.
else
24.
25.
$archivoRecibido=$_FILES["ficheroDeCopia"]["tmp_name"];
26.
$destino="./ficheroParaRestaurar.sql";
27.
28. if (!move_uploaded_file ($archivoRecibido, $destino))
29. {
30. $mensaje='EL proceso ha fallado';
31. echo $mensaje;
32. }
33. $sistema="show variables where variable_name= 'basedir'";
34. $restore=mysql_query($sistema);
35. $DirBase=mysql_result($restore,0,"value");
36. $primero=substr($DirBase,0,1);
37. if ($primero=="/") {
38.
$DirBase="bin/mysql";
39. }
40. else
41. {
42.
$DirBase=$DirBase."bin\mysql";
43. }
44. $executa = "$DirBase -h $servername -u $dbusername
--password=$dbpassword $dbname < $destino";
45. system($executa,$resultado);
46. if ($resultado)
47. {
48. echo "<H3>Error ejecutando comando: $executa</H3>\n";
49. $mensaje="ERROR. La copia de seguridad no se ha restaurado.";
57.
58.
echo $mensaje2;
59.
60. }
61.
62. unlink ("ficheroParaRestaurar.sql");
63.
64. }
65.
66. ?>
__________________
Si sabemos como leer e interpretar el manual ser mucho ms fcil aprender PHP. En
lugar de confiar en ejemplos o copiar y pegar - PHP
seria bueno que pongas el tipo de error o la linea el archivo php que has modificado
__________________
Un nuevo horizonte