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

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:

Se bueno y comparte!
Publicado el Categorías Diseño y Desarrollo Web

Acerca de Perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

Comenta!

15 Comentarios activo "Crear backups automaticos de MySQL en Ubuntu/Linux"

avatar
Ordenar por:   Nuevos | Viejos
Thalskarth

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

Manuel
Manuel

Wow muchas gracias, no lo conocía.

Saludos!

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… Leer mas »
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

Pepe6
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
Pepe6

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

Anonymous
Anonymous

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

Pepe6
Pepe6

ummm no funciona ya las remplace todas tal vez este haciendo algo mal :(

Pepe6
Pepe6

Porfavor revisa el pastie y me dices que tengo malo:

http://pastie.org/private/vdeqelg0uhrq4hrpqhksqw

Jose Ramos
Jose Ramos

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

Alexis Castro
Alexis Castro

No me funciona el backup con tareas programadas, de hecho siempre tengo que correrlo como sudo si no no me funciona, el problema es en la tarea programada, cuando pongo el comando pues como pide contraseña no funciona, sabes si hay alguna forma de arreglar eso?

wpDiscuz