Foros del Web » Programando para Internet » PHP »

Proceso de Backup

Estas en el tema de Proceso de Backup en el foro de PHP en Foros del Web. Hola a todos mi problema es el siguiente, estoy tratando de realizar un sistema de backup de la base de datos de un sitio web ...
  #1 (permalink)  
Antiguo 24/09/2007, 07:41
Avatar de merkano  
Fecha de Ingreso: agosto-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 0
Proceso de Backup

Hola a todos mi problema es el siguiente, estoy tratando de realizar un sistema de backup de la base de datos de un sitio web y no me funciona en el servidor de hosting porque localmente me funciona bien, les dejo el codigo que estoy utilizando para que lo vean.

Saludos a Todos.

Cita:
require('../../Connections/cajaprof.php');
set_time_limit(10000);
// CONFIGURACIÓN.
$dbhost = 'localhost'; // Servidor base de datos.
$dbuname = 'usuario'; // Usuario base de datos.
$dbpass = 'password'; // Contraseña base de datos.
$dbname = 'basedatos'; // Nombre base de datos.
$mail_enviar='[email protected]'; // Mail a enviar la base de datos.
$ruta='./backup/'; // Ruta del directorio donde se guardar archivo temporal. [./ para el raíz]

/* Descargar la base de datos en gzip (al máximo) y enviar por mail.*/
function backup_mysql()
{
// Variables globales
global $dbhost,$dbuname,$dbpass,$dbname,$mail_enviar,$rut a;

// Crear nombres de los ficheros backup
$fecha=time(); // Fecha actual
$archivo=gmstrftime("%y-%m-%d",$fecha); // Formato de la fecha para dar nombre al fichero
$archivo=$ruta.$archivo.'.sql'; // Archivo sql
$archivo_gz=$archivo.'.gz'; // Archivo sql.gz

// Descarga de la base de datos
@system('mysqldump --host='.$dbhost.' --user='.$dbuname.' --password='.$dbpass.' --opt --quick '.$dbname.' > '.$archivo); // Crear un archivo con el contenido de la base de datos
if(file_exists($archivo)) // Si ha creado correctamente el backup
{
$comprimido=comprimir($archivo,$archivo_gz); // Comprimirlo en gzip
if($comprimido=='TRUE')
enviar_adjunto ($archivo_gz,'Base de datos'); // Envio de mail comprimido
else
enviar_adjunto ($archivo,'Base de datos'); // Envio de mail sin comprimir

//@unlink($archivo); // Borrar fichero sql
//@unlink($archivo_gz); // Borrar fichero sql.gz

return TRUE; // Regresa confirmado el backup
}
else // No ha podido crear el backup
return FALSE; // Regresa denegando el backup
}

// Comprimir en gzip un archivo
function comprimir($archivo_original,$archivo_comprimido)
{
$fp=@gzopen($archivo_comprimido,'w9'); // Crear archivo comprimido
if($fp!='FALSE') // Comprobar que zLib esta activo
{
$fp2=@fopen($archivo_original,'r'); // Abrir archivo original
$buffer=@fread($fp2,filesize($archivo_original));// Leer archivo original
@fclose($fp2); // Cerrar archivo original
@gzwrite($fp,$buffer); // Escribir archivo comprimido
@gzclose($fp); // Cerrar archivo comprimido
return TRUE; // Regresa confirmado la compresión
}
else
return FALSE; // Regresa sin comprimirlo
}

// ENVIO DE CORREO CON ADJUNTO COMPRIMIDO
// Adaptado de http://www.tecnocodigo.com/dipro/php...ail&articulo=0
function enviar_adjunto($archivo,$asunto)
{
global $mail_enviar;

$buffer = implode("", file($archivo)); // Leer fichero
$buffer=chunk_split(base64_encode($buffer)); // Codificación en base64 y divido

// Cabeceras
$cabecera = "MIME-version: 1.0\n";
$cabecera .= "Content-type: multipart/mixed; ";
$cabecera .= "boundary=\"Message-Boundary\"\n";
$cabecera .= "Content-transfer-encoding: 7BIT\n";
$cabecera .= "X-attachments: $archivo";

// Mensaje
$mensaje = "--Message-Boundary\n";
$mensaje .= "Content-type: text/plain; charset=ISO-8859-1\n";
$mensaje .= "Content-transfer-encoding: 7BIT\n";
$mensaje .= "Content-description: Mail message body\n\n";

// Adjuntar el fichero
$mensaje .= "\n\n--Message-Boundary\n";
$mensaje .= "Content-type: Binary; name=\"$archivo\"\n";
$mensaje .= "Content-Transfer-Encoding: BASE64\n";
$mensaje .= "Content-disposition: attachment; filename=\"$archivo\"\n\n";
$mensaje .= "$buffer\n";
$mensaje .= "--Message-Boundary--\n";

@mail($mail_enviar,$asunto,$mensaje,$cabecera); // Envio de mail

}

?>
  #2 (permalink)  
Antiguo 24/09/2007, 08:24
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Proceso de Backup

que es lo que no te funciona???, que error saca??

si es posible detecta la linea en donde te indica el error

esas funciones mail a veces las desabilita el servidor, para evitar que un spammer este llenando de spammer el server valga la redundancia.

tienes que ver los permisos que tengas a esas carpetas

hazlo paso a paso y vas viendo cual es el error, en que parte.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
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 01:22.