Foros del Web » Programando para Internet » PHP »

Problema con BackUp de MySQL con PHP y ZIP

Estas en el tema de Problema con BackUp de MySQL con PHP y ZIP en el foro de PHP en Foros del Web. Hola, Revisando este post con mas de 6 meses y para no reabrir, pido la siguiente ayuda. Actualmente tengo problemas con los Backup porque se ...
  #1 (permalink)  
Antiguo 18/02/2016, 20:14
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Problema con BackUp de MySQL con PHP y ZIP

Hola,

Revisando este post con mas de 6 meses y para no reabrir, pido la siguiente ayuda.

Actualmente tengo problemas con los Backup porque se me están generando todos los dias y duplicando el peso de los respaldo.

Actualmente uso el siguiente codigo :

Código PHP:
Ver original
  1. <?php
  2. /*
  3. cPanel Backup Script
  4. Generated by https://www.ericzhang.me/projects/cpanel-auto-backup/
  5. */
  6.  
  7. $auth = base64_encode("user:Pass");
  8. $domain = "dominio";
  9. $theme = "paper_lantern";
  10. $secure = true;
  11. $ftp = true;
  12. $ftpserver = "ftp.xxxx.com";
  13. $ftpusername = "user";
  14. $ftppassword = "user";
  15. $ftpport = "21";
  16. $ftpdirectory = "/backup_webapp";
  17.  
  18. if ($secure) {
  19.     $url = "ssl://" . $domain;
  20.     $port = 2083;
  21. } else {
  22.     $url = $domain;
  23.     $port = 2082;
  24. }
  25.  
  26. $socket = fsockopen($url, $port);
  27. if (!$socket) {
  28.     exit("Failed to open socket connection.");
  29. }
  30.  
  31. if ($ftp) {
  32.     $params = "dest=ftp&server=$ftpserver&user=$ftpusername&pass=$ftppassword&port=$ftpport&rdir=$ftpdirectory&submit=Generate Backup";
  33. } else {
  34.     $params = "submit=Generate Backup";
  35. }
  36.  
  37. fputs($socket, "POST /frontend/" . $theme . "/backup/dofullbackup.html?" . $params . " HTTP/1.0\r\n");
  38. fputs($socket, "Host: $domain\r\n");
  39. fputs($socket, "Authorization: Basic $auth\r\n");
  40. fputs($socket, "Connection: Close\r\n");
  41. fputs($socket, "\r\n");
  42.  
  43. while (!feof($socket)) {
  44.     $response = fgets($socket, 4096);
  45.     echo $response;
  46. }
  47.  
  48. fclose($socket);
  49.  
  50. ?>

Con este no tengo problemas pero los antiguos se esta tornando muy pesado al sistema por lo que tengo que borrarlo manualmente.


Encontre el siguiente codigo:

http://www.forosdelweb.com/f18/backup-mysql-con-php-compresion-zip-774288/

y estoy tratando de ocuparlo :

Código PHP:
Ver original
  1. <?php
  2.  
  3. header("Content-type: text/plain; charset=UTF-8");
  4. echo date("Y-m-d H:i", time()) . " Create Backup MySql...\r\n";
  5.  
  6. // Datos de acceso a MySQL
  7. $myhost = "host";
  8. $myuser = 'user';
  9. $mypass = 'pass'; // mi pass esta con una !
  10. $DB = mysql_connect($myhost, $myuser, $mypass) or die(date("Y-m-d H:i", time()) . " ERROR!! No se pudo conectar a MySQL.\r\n");
  11.  
  12. // Otros parámetros
  13. $OUTDIR = "../backup_webapp/"; // Cambiar segun necesidades y tipo servidor
  14. $now = date("YmdHi", time());
  15. $outfile = "MySQL_$now.zip";
  16. $periodo = time() - 259200; // Los archivos anteriores a este periodo (3 dias = 259200 segundos) serán borrados
  17.  
  18. // Crear nuevo archivo ZIP
  19. # Más información sobre la clase PHP
  20. # http://es.php.net/manual/en/class.ziparchive.php
  21. echo date("Y-m-d H:i", time()) . " Creando '$OUTDIR$outfile.zip' ... ";
  22. $zip = new ZipArchive;
  23. if (!$zip->open("$OUTDIR$outfile", ZIPARCHIVE::CREATE)) die("ERROR!!\r\n");
  24. echo "OK.\r\n";
  25.  
  26. // Tomar un listado de bases de datos
  27. $q = mysqli_query("SHOW DATABASES");
  28.  
  29. // Volcar todas las bases
  30. while ($database = mysqli_fetch_row($q))
  31.     if ($database[0] != "information_schema" && $database[0] != "mysql")
  32.         {
  33.         // Nombrar archivo
  34.         $filename = "{$database[0]}.sql";
  35.         $tempfile = date("YmdHis", time()) . ".~swap";
  36.  
  37.         echo date("Y-m-d H:i", time()) . " Volcando '$filename' ... ";
  38.  
  39.         // Volcar datos
  40.  
  41.         system("mysqldump -h $myhost -u $myuser -p$mypass --opt {$database[0]} -r $OUTDIR$tempfile");  
  42.  
  43.         echo "OK.\r\n"
  44.         . date("Y-m-d H:i", time()) . " Agregando '$filename' a '$outfile' ... ";
  45.  
  46.         //  Agregar archivo al ZIP
  47.         $zip->addFile($OUTDIR.$tempfile, $filename);
  48.  
  49.         // Recordar los temporales utilizados
  50.         $DUMPFILES[] = $OUTDIR.$tempfile;
  51.  
  52.         echo "OK.\r\n";
  53.         }
  54.  
  55. // Desconectar de la base de datos
  56.  
  57. // Cerrar archivo ZIP
  58. $zip->close();
  59.  
  60. // Eliminar temporales. Importante hacerlo DESPUÉS de cerrar el ZIP
  61. foreach($DUMPFILES as $file)
  62.     unlink($file);
  63.  
  64. // Elminar archivos antiguos
  65. echo date("Y-m-d H:i", time()) . " Delete backup before 3 days....\r\n";
  66. $D = opendir($OUTDIR);
  67. while ($F = readdir($D))
  68.     if ($F != "." && $F != "..")
  69.         if (filectime($OUTDIR.$F) < $periodo)
  70.             if (!unlink($OUTDIR.$F))
  71.                 echo date("Y-m-d H:i", time()) . " Can delete the files $F.\r\n";        
  72.  
  73. echo date("Y-m-d H:i", time()) . " works its done.\r\n";
  74. ?>

El siguiente codigo me da errores, al revisarlo podria ser por los Mysql deprecate.

Quedo atento a sus comentarios y gracias!

Etiquetas: backup, html, mysql, sql, zip
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.