Me acabo de hacer un pequeñito script PHP para hacer backups contra las bases de datos de KDE-Hispano. Solo hace backup de las BBDD y nos la envia por email, de momento.
En primer lugar, necesitamos la libreria PHPMailer, que la podemos encontrar en: http://phpmailer.sourceforge.net/
El script de backup comentadito :-):
// Asignamos una memoria de 12MB para poder hacer las transacciones. Reasignar segun necesidad
ini_set("memory_limit","12M");
// Fecha de hoy
$hoy = date("d-m-Y");
// Nombre del archivo
$archivo = trim($_GET['file']);
// Temporal
$tmp = "/var/tmp/"
// Fichero adjunto al email (Cambiar la ruta segun necesidad)
$adjunto = $tmp.$archivo.".sql.bz2";
// Destinatario del email
$to = trim($_GET['to']);
// Hacemos varios chequeos, primero borramos los ficheros anteriores
exec("rm /var/tmp/".$archivo.".sql");
// Comando para exportar las BBDD, cambiar usuario y contraseña a las vuestras
exec("mysqldump -u usuario -pcontraseña ".$archivo." > $tmp.$archivo.".sql");
// Comprimimos el archivo sql
exec("bzip2 -zf $tmp.$archivo.".sql");
// Comprobamos si existe el archivo comprimido y mandamos el email
if (is_file($tmp.$archivo.".sql.bz2")) {
// Creamos una instancia de PHPMailer
$mail = new PHPMailer();
// Definimos el remitente
$mail->From = "yo@midominio.org";
// Nombre del remitente
$mail->FromName = "Yo";
// Usamos localhost como SMTP
$mail->Host = "localhost";
// Asunto del email
$mail->Subject = "Backup (".$archivo."): " .$hoy;
// Cuerpo del mensaje
$mail->Body ="Adjunto fichero de backup para base de datos: ".$archivo."\n\nFecha: ".date("d-m-Y h:i");
// Añadimos el destinatario
$mail->AddAddress($to);
// Añadimos el adjunto
$mail->AddAttachment($adjunto);
// Enviamos el email
if(!$mail->Send()) echo "Error enviando el email";
// Sanemos por si acaso y limpiamos direcciones y adjuntos
$mail->ClearAddresses();
$mail->ClearAttachments();
}
Un saludo,