Crear backups automaticos de MySQL en Ubuntu/Linux

Que feo que es no hacer backups y despues perder datos solo por no tomarme 5 minutos para hacer los debidos respaldos. A quien no le ha pasaso? A mi si, y es por eso que me di a la tarea de buscar como hacer backups automaticos en linux y de manera sencilla. Si bien existen muchas maneras la que les voy a explicar es muy sencilla y la encontre en esta web.

Vamos a usar la herramienta automysqlbackup que no es mas que un script que hace uso de mysqldump para realizar los backups.

Paso 1: Comencemos, primero la instalacion:

sudo apt-get install automysqlbackup

si no usan ubuntu o alguna distro basada en debian pueden de todas maneras ir a la pagina del proyecto y bajar un archivo .sh que es igual de facil de usar.

Paso 2: Ahora vamos a editar los algunos datos como por ejemplo donde queremos guardar los respaldos, para eso hacemos:

sudo gedit /etc/default/automysqlbackup

Paso 3: Busquen la linea que dice

# Host name (or IP address) of MySQL server e.g localhost
DBHOST=localhost

Ahi colocan el la direccion del host de donde estan por hacer los backups, yo en mi caso deje localhost porque es para respaldar las bases de datos de mi propia pc.

Paso 4: Ahora busquen…

#DBNAMES=”db_ispconfig web1 web2 web3″
DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d’/’ -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `

Pueden dejar eso asi tal cual esta y lograran que se haga backup de todas las bases de datos, o pueden modificarlos como indica el ejemplo para solo resguardar algunas bases de datos especificas.

Paso 5: Tambien busquen…

BACKUPDIR=”/var/lib/automysqlbackup”

Eso deben cambiarlo por la direccion donde se vayan a hacer los backups, recomiendo alguna particion que no sea la raiz de Linux. Sino cuando decidan cambiar de distro se van a dar con que se olvidaron los backups…como me paso a mi Crear backups automaticos de MySQL en Ubuntu/Linux

Paso 6: Y por ultimo editamos la linea

MAILADDR=”user@domain.com”

Ponemos nuestra direccion de email si queremos que se nos envie un mail con los backups, recomiendo no usarlo, pongan un # delante de la linea sino se vuelve molesto recibir tantos mails con archivos.

Guarden y cierren el archivo.

Ahora para hacer el backup solo deben escribir en la consola lo siguiente:

automysqlbackup

Y veran que la carpeta que elijieron tiene los resguardos.

El problema viene en que esto aun no es automatico, mas bien es semi-automatico, para hacerlo totalmente automatico debemos hacer uso de cron. Lo pueden hacer solo con la consola pero yo prefiero el metodo grafico:

Paso 8: Instalar schedule Cron

sudo apt-get install gnome-schedule

Paso 9: Apretar ALT+F2 y escribir gnome-schedule

Cuando aparezca la ventana para configurar las tareas programadas, pincharemos en “Nuevo” y seleccionaremos la opción “Una tarea que se lanzará repetidamente” para crear una nueva tarea.

En la ventana siguiente indicaremos un nombre para la nueva tarea, por ejemplo, “backups mysql” y, a continuación, escribiremos el comando que a ejecutar:

automysqlbackup

Ahora, sólo falta establecer el tiempo de intervalo deseado para actualizar la imagen, por ejemplo yo lo deje en por semana. Por último, pulsaremos “Añadir”. Ya hemos terminado de configurar la tarea en el planificador. Asi les tiene que quedar:

Crear backups automaticos de MySQL en Ubuntu/Linux

Suscribete GRATIS!
Recibe las novedades de Paraiso Linux en tu email

About perro

Casi Ingeniero en Informática. Programador en PHP y KumbiaPHP. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japon...y el basketball...y bloguear claro. Aun sigo buscando la manera de hacer mi primer millon :)
Categorias php y mysql
Tags , , , .
  • http://www.thalskarth.com.ar Thalskarth

    Te consulto algo, así como lo seteas sirve para hacer backup de la base de datos de wordpress?

  • Manuel

    Wow muchas gracias, no lo conocía.

    Saludos!

  • http://www.Guii.com.uy DiMaNacho

    Uolas, tengo la siguiente duda, hay alguna posibilidad de setear el automysqlbackup para que de permisos de escritura y lectura a otros usuarios? Porque en archivo de configuración que mensionás al editar agrega lo siguiente (que ocurre en realmente):

    # Backup directory location e.g /backups
    # Folders inside this one will be created (daily, weekly, etc.), and the
    # subfolders will be database names. Note that backups will be owned by
    # root, with Unix rights 0600.
    BACKUPDIR=”/var/lib/automysqlbackup”

    Es decir, solo el root puede utilizar estos datos, en mi caso estoy accediendo desde un usuario distinto del root (tengo acceso al root pero me gusta más usar una cuenta aparte y que me pida permiso para X acción), y no puedo abrir los .gzip que crea el autobackup…

    Mi idea de usar esto es para varios equipos que usan algunos compañeros de trabajo, donde tienen una aplicación que programé en PHP con MySQL, y preciso que se hagan estos backup cada 1 o 2 horas, hasta ahi todo bien, pero me molestaria tener que cambiar de usuario cada vez que voy a copiar sus archivos y luego tener que abrirlos y volcarlos en una base de datos más grande que contiene la conjunción de todas estas DB de mis compañeros.

    Espero se haya entendido, saludos :)

    • http://blogjapon.com.ar perro

      Se entendio :)
      A ver….ya no uso el programa pero recuerdo bien que no era necesario cambiar a root para ver los archivos. Como usuario normal los podia abrir y modificar perfectamente.
      Pero…en el caso de que no te suceda asi se me ocurre que una solucion podria ser programar un cron para que cambie los permisos de la carpeta y los archivos con chmod cada cierto tiempo.

  • http://sakrow.com Sakrow

    No me deja instalar el “automysqlbackup”. No entiendo porque no lo encuentra en los repositorios.

    ¿Alguna solución? ¿Alguna otra forma de hacerlo?

    Un saludo

    • http://blogjapon.com.ar perro

      Si, usa el archivo .sh. Colocalo en cualquier carpeta. Es lo mismo que instalarlo desde los repositorios

      • http://sakrow.com sakrow

        Ok, muchas gracias, lo estoy probando con CRON para que me lo haga todos los dias 30 de cada mes.

        Haber

  • Pepe6

    Tengo un problema pues no me genera el archivo o los archivos,pero tampoco me sale error puse DBNAMES=’all’ y no genera nada :( espero me colabores

    • Pepe6

      bueno, ya me genera los archivos .sql pero los genera vacios :(

    • Anónimo

      Por favor prueba escribiendo tu mismo las comillas, tanto las simples como las dobles 

  • Jose Ramos

    Muy util y bien detallado los pasos para instalar y hacer funcionar el autmysqlbackup!