Realizar backups de MySQL de forma automática

Lo que haremos es utilizar un script hecho en Perl, el cual se encarga de descargar la base y automáticamente configurar el nombre de forma tal de poder tener varios backups para restaurar.

Lo primero que debemos hacer es copiar el siguiente código, abrir un bloc de notas (Inicio -> Ejecutar -> notepad y darle enter) o sino algún software similar y guardar el archivo previamente configurado con el nombre backup.mysql.pl:

#!/usr/bin/perl
use strict;
print "Content-type: text/htmlnn";
print "Iniciando backup!nn";
print "Espere por favor...nn";

# CUENTA (Ej. cuenta: elserver.com)
my $cuenta = "sitio.com";

# USUARIO DE MYSQL
my $usuario = "usuario";

# PASSWORD DE MYSQL
my $pass = "password";

# IP INTERNA DE MYSQL
my $ip = "192.168.0.X";

# BASE DE MYSQL
my $base = "base";

my ($wkday,$month,$day,$time,$year) = split(/s+/, localtime);
my $fecha = "$day-$month-$year";
system("/usr/local/mysql/bin/mysqldump $base -u $usuario --password='$pass' -h $ip > /www/$cuenta/mysql_backup/$cuenta-$fecha.sql");
print "Backup Finalizado!!!nn";

 

Lo que se deberá configurar es el nombre de la cuenta, el usuario de MySQL, la contraseña, ip de INTRANET y el nombre de la base de dato.

Luego proceder con los siguientes pasos:

  1. Subir el script anterior por FTP dentro de la carpeta CGI-BIN. Recordá que los archivos tienen que tener permisos 755 para ejecutarse.
  2. En el / (Directorio base) es necesario crear la carpeta con el nombre mysql_backup.
  3. Ingresar al Panel de control -> Avanzado -> Configuración del servidor web y tildar la opción de CGI y CGI Global. Luego de aceptar esto, debemos esperar un máximo de 2 horas en que se active.
  4. Ir a Avanzado -> Tareas programadas y configurar una tarea programada a ejecutarse con la frecuencia deseada (1 por día por ejemplo) a la URL del script de Backup. Por ejemplo http://www.tusitio.com/cgi-bin/backup.mysql.pl

En caso de tener más de una base se puede repetir el procedimiento con múltiples copias de la aplicación.

Eso es todo! De ahora en más todos los días se realizará el backup de la base.