• #Aplicaciones
  • #Bases de datos
  • #Dispositivos
  • #Hardware
  • #Inversión
  • #Marketing
  • #Programacion
  • #Sistemas
  • Cómo automatizar backups MySQL con un cron

    GuíasBases de datosBash scriptingLinuxMySQLProgramacionSistemas

    Vamos a ver cómo puedes crear copias de seguridad o backups automáticamente con cron jobs, que te permitirá configurarlas según los intervalos que indiques.

    Cómo crear un cron

    Para crear un cron job, tenemos que acceder al crontab con el siguiente comando:

    crontab -e

    Se abrirá el crontab de tu usuario. Un cron job constan de una serie de números iniciales que indican: minuto, hora, día, mes y día de la semana. Seguidamente va el comando que se ejecutará en el intervalo indicado en dichos números. Por ejemplo, el siguiente cron ejecutará el script tarea todos los viernes a las 4:00

    0 4 * * 5 sh /home/usuario/semanal/tarea.sh

    Para agregar una nueva tarea, basta con editar este archivo, agregar un nueva línea con dicho formato y guardar el archivo.

    Cómo automatizar backups MySQL

    Existe dos métodos que nos permitirán ejecutar cron jobs que hagan copias de seguridad de la base de datos. Puedes incluir la información de autenticación de MySQL en el mismo comando del cron o puedes incluir estos datos en un archivos.

    Método 1: Datos de acceso de MySQL en el comando del cron

    Si incluimos los datos de acceso en el comando, éste será el siguiente:

    /usr/bin/mysqldump -u usuario -p 'contraseña' base_de_datos > /home/backup.sql

    El comando guardará la copia de seguridad en el archivo /home/backup.sql. Obviamente debes reemplazar por un nombre de usuario con los permisos de acceso adecuados a la base de datos, contraseña por su password y base_de_datos por el nombre de la base de datos.

    Ejecuta crontab -e para agregar el cron job. Si queremos que el comando se ejecute todos los lunes a las 2, la línea del crontab será la siguiente:

    0 2 * * 1 /usr/bin/mysqldump -u usuario -p 'contraseña' base_de_datos > /home/backup.sql

    Método 2: Datos de acceso de MySQL en un archivo externo

    Si no quieres incluir la información de acceso  MySQL en el comando del cron, puedes crear un archivo llamado .my.cnf en el directorio /home/usuario, reemplazando usuario por tu nombre de usuario en el sistema. No te olvides del punto (.) inicial. Con el editor nano puedes hacerlo del siguiente modo:

    nano .my.cnf

    En el archivo debes incluir las siguientes instrucciones:

    [client]
    user = usuario
    password = "contraseña"
    host = localhost

    Al igual que antes, reemplaza usuario por el nombre de un usuario conacceso a la based de datos de la que quieras hacer una copia de seguridad y pass por su contraseña. Guarda el archivo pulsando CTRL + X y seleccionando Y para confirmar el guardado.

    Ahora, ejecuta crontab -e para agregar el cron job, reemplazando base_de_datos por el nombre de la base de datos de la que quieres crear un backup.

    0 2 * * 1 /usr/bin/mysqldump base_de_datos > /home/backup.sql

    Y esto esto ha sido todo.

    Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

    https://twitter.com/neeonez