Este script, generará un respaldo de su base de datos y lo enviará directo a su correo electrónico, el proceso es simple, y no se juntarán copias y copias de su base de datos respaldada ya que cada vez que genere un respaldo este sobrescribirá el anterior.
Una vez el respaldo sea generado, este será enviado como archivo adjunto al correo electrónico que usted configure, tenga presente que este sctipt no está pensado para bases de datos enormes, y desconocemos las políticas de cada proveedor de correo o de servicio de hosting, por lo cual en algunos casos es posible que este script no funcione, por lo mismo no nos hacemos responsables si es que el correo no sale del servidor o no llega a destino. Y en cualquier caso antes de correr este script siempre debe tener un respaldo de su base de datos reciente en caso que accidentalmente cambie alguna función de este script al momento de editarlo.
Descarga de Script -> MySQL_Backup.zip
Información Pertinente/Importante:
Permisos de escritura: Carpetas 755; Archivos 644
usuario/USUARIO = Su usuario de cPanel
usuario_usuariodb = Usuario con permisos sobre la base de datos, este se crea en cPanel en la sección de MySQL y luego se le da permisos sobre la base de datos, se puede pero no se recomienda utilizar el usuario de cPanel ya que esta contraseña puede cambiar y el script dejar de funcionar.
CONTRASEÑADB = Contraseña asignada a usuario_usuariodb
usuario_nombredb = nombre de la base de datos creada en cPanel en la sección MySQL
Usando FTP, creamos un directorio llamado
/backup
Directamente en el /HOME (raíz) de su ftp, es decir junto a /www y /public_html etc…
Dentro de /backup una carpeta llamada
/logs
Ej:
/home/USUARIO/backup/logs
Luego agregamos dentro de la carpeta /logs un archivo llamado
Errorlog.txt
Agregarle permisos de escritura según corresponda.
------------
Subir los siguientes archivos en carpeta /backup
class.phpmailer.php
mysqlbackup.php
mysqlbackup.sh
Con algún editor, modificar los siguientes archivos (solo entre comillas “##”):
1) mysqlbackup.php
$user = "usuario"; <-- cambiar por su usuario de cPanel
$mail->From = "respaldo@correo.com"; <-- Cambiar por correo que envía (puede ser ficticio)
$mail->AddAddress("correo@correo.com"); <-- Cambiar por correo que recibirá el respaldo, se sugiere un @gmail ya que es probable que la base de datos pese bastante y otros servidores bloqueen el adjunto.
2) mysqlbackup.sh (Modificar áreas en ROJO)
mysqldump -u usuario_usuariodb -pCONTRASEÑADB usuario_nombredb --add-drop-table -Q | gzip > "/home/usuario/backup/mysqlbu_usuarioDB.sql.gz" 2>>"/home/usuario/backup/logs/Errorlog.txt"
php -q /home/usuario/backup/mysqlbackup.php
CRON JOB:
Ahora debemos crear una tarea programada “cron job” para automatizar la generación del respaldo, esto puede ser cada X minutos, Horas, Días, meses , etc.. Favor distanciar los respaldos lo más posible para evitar que falle el script, 1 vez cada 24 o 48 horas es suficiente.
Primero ir a cPanel e ingresas con su usuario y contraseña:
Click en “Cron Jobs” bajo menú “Avanzada”
Ingresar un mail de reporte, si algo falla, este mail le indicará cual es la falla y también sabrá que se está ejecutando el CRON JOB y con eso que su respaldo viene en camino.
En la línea de comando agregar:
/home/USUARIO/backup/mysqlbackup.sh
Modificar el USUARIO por suyo de cPanel.
Luego fijar el intervalo o frecuencia en que debe correr el CRON JOB.
Y ya está listo.
;)
Créditos:
PHPMailer class proviene de: http://phpmailer.sourceforge.net – aquí pueden descargar la última versión de este archivo y ver otras funcionalidades del mismo si lo desean.
La idea original proviene de un foro que en la actualidad no existe y fue mejorado por: http://www.classicwebdesign.com/db_backup/ - este script fue modificado y simplificado para el uso de quienes utilicen este tutorial.
Este código es 100% libre, siéntanse libres de compartirlo, mejorarlo o adaptarlo a sus respectivas necesidades.