Hace algún tiempo vimos cómo respaldar una base de datos completa en MySQL usando mysqldump sin exponer nuestras credenciales.
Hoy veremos cómo respaldar la base de datos pero cada cierto tiempo. Es decir, podríamos respaldarla cada semana, cada hora, todos los domingos o en cualquier momento del tiempo gracias a cron.
Resumiendo, veremos cómo crear un respaldo de una base de datos de manera periódica y automática usando cron, Linux, mysql y un script que he programado.
Antes de esto y para tener una idea general, recomiendo que veas estos artículos:
No son estrictamente necesarios para este post, pero te van a ayudar a entender mejor.
Tenemos que especificar nuestro usuario y contraseña en un archivo my.cnf. Dicho archivo se ve algo así:
Después de ello obtenemos la fecha para ponerla como sufijo del archivo de respaldo que se va a crear.
Usamos mysqldump, le pasamos las credenciales y la salida la guardamos en el archivo de respaldo. Una vez que ya probamos que funciona, lo añadimos a cron para que se ejecute de manera periódica y listo.
Dejo aquí el script de bash que se encarga de generar los respaldos automáticos de una base de datos en MySQL.
Únicamente tienes que cambiar las variables de acuerdo a tus necesidades, darle permisos de ejecución con chmod +x script.sh
y ponerlo en el crontab; más abajo mostraré un ejemplo.
En la primera línea definimos el shebang para indicar el ejecutable de bash. Luego son simples comentarios que explican todavía más el código.
Las variables que tendrían que cambiarse serían la ruta de salida del respaldo y la ubicación del archivo, pues en mi caso es cabox pero en tu caso será otro dependiendo de las necesidades.
Para ejemplificar, pondré el script en ~, es decir, en /home/tu_usuario/. Luego de ello le damos permisos, y listamos los archivos para ver que no hay respaldos.
Por cierto, recuerda que debes crear el archivo my.cnf y especificar su ubicación dentro del script (en mi caso está en ~/my.cnf).
Luego ejecuamos ./respaldar_mysqldump_cron.sh
y se ha creado el respaldo con la fecha y hora actuales. Con esto nos damos cuenta de que el script funciona de maravilla.
Si se desea añadir el script al crontab ejecutamos:
crontab -e
Ahí, abajo de todo, añadimos la llamada al script. En este caso lo haré cada minuto para ejemplos de simplicidad, no recomiendo hacerlo en producción sobre todo si la base de datos es pesada.
Queda así:
La línea que agregué fue:
* * * * * ~/respaldar_mysqldump_cron.sh
(Me ayudó esta herramienta)
Ahora solamente resta esperar un poco, se supone que cada minuto debería crearse un archivo de respaldo. La imagen lo comprueba:
Editamos el crontab e imprimimos la fecha del servidor. Cada cierto tiempo listamos los archivos y vemos que conforme pasa el tiempo, más respaldos o backups son creados.
Y claro, los respaldos contienen los datos de las bases de datos de MySQL.
Con eso terminamos por hoy. Aprende más sobre MySQL, Bases de datos y Linux.
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…
En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…
En este artículo se presenta una guía para imprimir un PDF a partir de una…
En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…
Esta web usa cookies.