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.
Contenidos
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.