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
}
?>
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
}
?>