Vamos a crear una carpeta backups en nuestra raíz (ya sabes, /home/tu_cuenta/backups).
Ve al gestor de archivos y crea dicho directorio en la raíz, donde se almacenarán las copias de seguridad:
/home/tu_cuenta/backups
También podemos crear la carpeta backups desde la terminal del menú “avanzada”.
Ahora vamos a crear los cronjobs, para ello hay que irse al menú «avanzada».
Seleccionamos la temporalidad del trabajo, tenemos una configuración común que ya nos pone automáticamente la temporalidad sin necesidad de saber los campos del cron, este campo es una maravilla.
Resumen de lo que significa cada campo, si no lo hacemos por configuración común:
- Minuto: corresponde al minuto en que se va a ejecutar el script o el comando, el valor va de 0 a 59
- Hora: la hora exacta, se maneja el formato de 24 horas, los valores van de 0 a 23, siendo 0 las 12:00 de la medianoche.
- Día (dom – day of the month): hace referencia al día del mes, por ejemplo se puede especificar 15 si se quiere ejecutar cada día 15.
- Mes (mon – mounth): mes
- Día de la semana (dow – day of the week): significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat, sun.
- Comando (command) refiere al comando o a la ruta absoluta del script o comando a ejecutar, ejemplo: /home/usuario/scripts/actualizar.sh, si acaso llama a un script este debe ser ejecutable.
Si no queremos especificar algún campo ponemos *
Una vez elegido el período, vamos a crear al comando. En este caso, como indicamos anteriormente, serán 2 cronjobs: uno para los archivos y otro para la base de datos.
El comando para copiar los archivos será el siguiente:
tar -czvf /home/tu-usuario/backups/backup_$(date +\%Y-\%m-\%d)_archivos.tgz ./public_html
Este comando creará un archivo comprimido del contenido de la carpeta /public_html
Ahora, creamos la tarea para la copia de seguridad de la base de datos. Necesitaremos los siguientes datos para configurar la tarea:
- DBUSER: Usuario de la base de datos.
- DBPASSWORD: Contraseña de dicho usuario para la base de datos.
- DBNAME: Nombre de la base de datos.
Los parámetros cronológicos igual que la tarea anterior y el comando el siguiente:
mysqldump -u DBUSER -p DBPASSWORD DBNAME | gzip > /home/tu-usuario/backups/backup_$(date +\%Y-\%m-\%d)_basededatos.gz
Este comando creará un DUMP de la base de datos comprimido en un archivo llamado backup_AÑO_MES_DIA_basededatos.tgz
Ejemplo de configuración
Como apunte, las empresas de hosting usan cabinas de discos en local y remoto para la realización de sus backups.
Las empresas más pequeñitas suelen disponer de servidores NAS para la realización de sus backups.
