Foros del Web » Programando para Internet » PHP »

Backups automaticos?

Estas en el tema de Backups automaticos? en el foro de PHP en Foros del Web. Buenos días amigos del foro, tengo que hacer que un script de backup en php se ejecute automaticamente y cada cierto tiempo no se como ...
  #1 (permalink)  
Antiguo 02/05/2009, 07:02
Avatar de javierito10  
Fecha de Ingreso: julio-2008
Ubicación: Potosí - Bolivia
Mensajes: 135
Antigüedad: 15 años, 9 meses
Puntos: 1
Backups automaticos?

Buenos días amigos del foro, tengo que hacer que un script de backup en php se ejecute automaticamente y cada cierto tiempo no se como hacerlo, espero que alguien pueda ayudarme con esto.

Si alguien sabe como hacer que un script haga esto se lo agradeceré bastante.

Saludos.
  #2 (permalink)  
Antiguo 02/05/2009, 07:11
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Backups automaticos?

Hola javierito10 !!!
Lo que te puedo facilitar es el script que saque de este foro pra crear un back-up de la base de datos, pero como hacerlo para que lo haga automatico la verdad que me vendria bien, pero no se como hacerlo :P

Saludos, Ricardo !!!


Código PHP:

<?php
/* Usuario para la conexion a Mysql. */
$usurio "root";
/* Password para la conexion a Mysql. */
$passwd "xxxxxx";
 
/* Host para la conexion a Mysql. */
$host "localhost";
/* Base de Datos que se seleccionará. */
$bd "empresa";
/* Nombre del fichero que se descargará. */
$nombre "backup_empresa.sql";
/* Determina si la tabla será vaciada (si existe) cuando  restauremos la tabla. */            
$drop false;
/* 
* Array que contiene las tablas de la base de datos que seran resguardadas.
* Puede especificarse un valor false para resguardar todas las tablas
* de la base de datos especificada en  $bd.

* Ejs.:
* $tablas = false;
*    o
* $tablas = array("tabla1", "tabla2", "tablaetc");

*/
$tablas false;
/* 
* Tipo de compresion.
* Puede ser "gz", "bz2", o false (sin comprimir)
*/
$compresion false;

/* Conexion y eso*/
$conexion mysql_connect($host$usurio$passwd)
or die(
"No se conectar con el servidor MySQL: ".mysql_error());
mysql_select_db($bd$conexion)
or die(
"No se pudo seleccionar la Base de Datos: "mysql_error());


/* Se busca las tablas en la base de datos */
if ( empty($tablas) ) {
    
$consulta "SHOW TABLES FROM $bd;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
        
$tablas[] = $fila[0];
    }
}


/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y");
$info['hora'] = date("h:m:s A");
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/'$representacion$matches);
$info['tablas'] = implode(";  "$matches[1]);
$dump = <<<EOT
# +===================================================================
# | YoDumpeo! 
{$info['dumpversion']}
# | por fran86 <[email protected]>
# |
# | Generado el 
{$info['fecha']} a las {$info['hora']} por el usurio '$usurio'
# | Servidor: 
{$_SERVER['HTTP_HOST']}
# | MySQL Version: 
{$info['mysqlver']}
# | PHP Version: 
{$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: 
{$info['tablas']}
# |
# +-------------------------------------------------------------------

EOT;
foreach (
$tablas as $tabla) {
    
    
$drop_table_query "";
    
$create_table_query "";
    
$insert_into_query "";
    
    
/* Se halla el query que será capaz vaciar la tabla. */
    
if ($drop) {
        
$drop_table_query "DROP TABLE IF EXISTS `$tabla`;";
    } else {
        
$drop_table_query "# No especificado.";
    }

    
/* Se halla el query que será capaz de recrear la estructura de la tabla. */
    
$create_table_query "";
    
$consulta "SHOW CREATE TABLE $tabla;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
            
$create_table_query $fila[1].";";
    }
    
    
/* Se halla el query que será capaz de insertar los datos. */
    
$insert_into_query "";
    
$consulta "SELECT * FROM $tabla;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_ASSOC)) {
            
$columnas array_keys($fila);
            foreach (
$columnas as $columna) {
                if ( 
gettype($fila[$columna]) == "NULL" ) {
                    
$values[] = "NULL";
                } else {
                    
$values[] = "'".mysql_real_escape_string($fila[$columna])."'";
                }
            }
            
$insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", "$values).");\n";
            unset(
$values);
    }
    
$dump .= <<<EOT

# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query


# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query


# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query

EOT;
}

/* Envio */
if ( !headers_sent() ) {
    
header("Pragma: no-cache");
    
header("Expires: 0");
    
header("Content-Transfer-Encoding: binary");
    switch (
$compresion) {
    case 
"gz":
        
header("Content-Disposition: attachment; filename=$nombre.gz");
        
header("Content-type: application/x-gzip");
        echo 
gzencode($dump9);
        break;
    case 
"bz2"
        
header("Content-Disposition: attachment; filename=$nombre.bz2");
        
header("Content-type: application/x-bzip2");
        echo 
bzcompress($dump9);
        break;
    default:
        
header("Content-Disposition: attachment; filename=$nombre");
        
header("Content-type: application/force-download");
        echo 
$dump;
    }
} else {
    echo 
"<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}
?>
__________________
Mail: [email protected]
  #3 (permalink)  
Antiguo 02/05/2009, 07:24
Avatar de javierito10  
Fecha de Ingreso: julio-2008
Ubicación: Potosí - Bolivia
Mensajes: 135
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Backups automaticos?

Muchas gracias Colote pero ya tengo el script para el backup, lo que necesito realizar es como hacerlo automático, y no solo nos caería bien a nosotros sino también a varios del foro.
  #4 (permalink)  
Antiguo 02/05/2009, 10:50
 
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Backups automaticos?

Y la opción es programar un crontab para que ejecute el script cada determinado tiempo.
  #5 (permalink)  
Antiguo 02/05/2009, 10:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Backups automaticos?

O una tarea programada si estas bajo Windows.
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 09:32.