Ok Carxl.. A ver,
Dentro de mi sitio tengo una carpeta llamada "backup"; en ella tengo las clases que plantea Deer en su script, que son las siguientes:
- AbstractMail.php
AttachmentMail.php
execute_db_backup.php
Mail.php
Multipart.php
mysql_db_backup.class.php
Posteriormente y fuera de la carpeta backup, tengo una pagína llamada "backup.php" que contiene lo siguiente:
Código PHP:
<?
// Script Respaldo de BD Mysql y enviado via Email
// Utilizando algunas Clases.
// Autor : Deerme http://deerme.org
// ******* Includes *************
require_once 'backup/mysql_db_backup.class.php';
require("backup/Mail.php");
require("backup/AttachmentMail.php");
require("backup/Multipart.php");
// ******************************
// ******* Configuracion ********
$lista_db[0]="bd_sigecor";
$lista_db[1]="db2";
$lista_db[2]="db3";
$lista_db[3]="db4";
$msg['titulo']="Respaldo BD";
$hora_local=time();
$usuario="root";
$password="";
$servidor="localhost";
$msg['destino']="[email protected]";
$msg['autor']="[email protected]";
// ******************************
// Instanciamos Objetos , Variables Iniciadas
$backup_obj = new MySQL_DB_Backup();
$correo = new AttachmentMail($msg['destino'], $msg['titulo'], "", $msg['autor']);
$pesototal=0;
// Comenzamos la Creacion de los Archivos
for ($i=0;$i<count($lista_db);$i++)
{
// Confg del Objeto
$backup_obj->server = $servidor;
$backup_obj->port = 3306;
$backup_obj->username = $usuario;
$backup_obj->password = $password;
$backup_obj->database = $lista_db[$i];
// Opciones del Objeto
$backup_obj->drop_tables = true;
$backup_obj->create_tables = true;
$backup_obj->struct_only = false;
$backup_obj->locks = true;
$backup_obj->comments = true;
$backup_obj->backup_dir = './';
$backup_obj->fname_format = 'm_d_Y';
$backup_obj->null_values = array( '0000-00-00', '00:00:00', '0000-00-00 00:00:00');
$task = MSX_SAVE;
$filename = $lista_db[$i].'.sql.gz';
$use_gzip = true;
$result_bk = $backup_obj->Execute($task, $filename, $use_gzip);
if (!$result_bk)
{
$output = $output.$backup_obj->error;
}
else
{
$output = $output.'
Resp DB : '.$lista_db[$i].'
Nombre : '.$lista_db[$i].'.sql.gz
Tamaño : '.filesize($lista_db[$i].'.sql.gz').' bytes
--------------------------------';
$peso=filesize($lista_db[$i].'.sql.gz');
$pesototal=($pesototal+$peso);
}
}
// Listo tenemos Creados los Archivos
// Hacemos Bucle para Adjuntarlos al Email
for ($i=0;$i<count($lista_db);$i++)
{
if ( file_exists($lista_db[$i].'.sql.gz') )
{
$correo->addAttachment( new Multipart($lista_db[$i].'.sql.gz') );
}
}
$correo->addTo($addTo);
// *** Mensaje ***
$msg['msg'] = 'Sistema Automatizado de Respaldo de Db
'.$output.'
Tamaño Total Adjunto : '.$pesototal.' bytes
Hora y Fecha : '.date(" H:i d/m/Y ",$hora_local).'
';
// *** Fin Mensaje ***
// Adjuntamos Mensaje al Correo
$correo->setBodyHtml($msg['msg']);
$correo->setPriority(ABSTRACTMAIL_NORMAL_PRIORITY);
// Enviamos
if ( $correo->send() )
{
echo 'Respaldo y Envio de Correo Exitoso<br>Mensaje :<br><pre>'.$msg["msg"].'</pre>';
}
else
{
echo 'Surgerion Problemas al Enviar el Correo';
}
?>
Que tiene lo mismo que el ejemplo de Deer en la página "index.php" salvo que personalizo la parte de congifuración:
Código PHP:
// ******* Configuracion ********
$lista_db[0]="bd_sigecor";
$lista_db[1]="";
$lista_db[2]="";
$lista_db[3]="";
$msg['titulo']="Respaldo BD";
$hora_local=time();
$usuario="root";
$password="";
$servidor="localhost";
$msg['destino']="[email protected]";
$msg['autor']="[email protected]";
Eso es lo que hago.
Dentro de ese sitio corro otras cosas que tengo en PHP y se comportan bien.
Deer hacia un comentario sobre "permisos 666 ó 777 en el directorio". eso no lo entiendo muy bien. Él dice que el directorio debe tener permisos para escribir (666 o 777). (AUNQUE NO CREO QUE ESE SEA MI PROBLEMA EN ESTE INSTANTE, PORQUE CUANDO EJECUTO EL SCRIPT ME APARECE TODO EL PHP). Como se si tengo el directorio habilitado con esos permisos?
Y bueno mi servidor local es el EasyPHP como lo comente antes, no se si sea cuestión que falte alguna extensión por habilitar.
Bueno gracias, espero haberme explicado y que puedan asesorarme.