Automatización del Backup de Moodle en Ubuntu
Configurar un respaldo automático de Moodle en un servidor Ubuntu garantiza la seguridad de los datos en caso de fallos o errores. Aquí te mostramos cómo hacerlo.
1️⃣ Crear el script de backup
Ejecuta el siguiente comando para crear el archivo del script:
sudo nano /usr/local/bin/backup_moodle.sh
Luego, agrega el siguiente contenido:
#!/bin/bash
# Directorios de Moodle
MOODLE_DIR="/var/www/html/moodle"
MOODLE_DATA="/var/www/moodledata"
BACKUP_DIR="/backup"
DB_NAME="moodle_db"
DB_USER="moodle_user"
DB_PASS="tu_contraseña"
DATE=$(date +"%Y%m%d_%H%M%S")
# Crear carpeta de backup si no existe
mkdir -p $BACKUP_DIR
# Backup de la base de datos
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/moodle_db_$DATE.sql
# Backup de archivos de Moodle
tar -czvf $BACKUP_DIR/moodle_files_$DATE.tar.gz $MOODLE_DIR $MOODLE_DATA
# Eliminar backups antiguos (opcional, más de 7 días)
find $BACKUP_DIR -type f -mtime +7 -exec rm {} \;
Guarda y cierra el archivo (Ctrl + X, luego Y y Enter).
2️⃣ Dar permisos de ejecución
Ejecuta el siguiente comando para hacer el script ejecutable:
sudo chmod +x /usr/local/bin/backup_moodle.sh
3️⃣ Programar el backup automático con Cron
Abre el crontab con:
sudo crontab -e
Agrega una de las siguientes líneas según la frecuencia deseada:
# Backup diario a las 2 AM
0 2 * * * /usr/local/bin/backup_moodle.sh
# Backup semanal (domingos a las 3 AM)
0 3 * * 0 /usr/local/bin/backup_moodle.sh
📌 Explicación de los tiempos en Cron
El formato de los tiempos en cron
sigue esta estructura:
* * * * * comando_a_ejecutar
│ │ │ │ │
│ │ │ │ └── Día de la semana (0-7, donde 0 y 7 = domingo)
│ │ │ └──── Mes (1-12)
│ │ └────── Día del mes (1-31)
│ └──────── Hora (0-23)
└────────── Minuto (0-59)
Ejemplos:
0 2 * * *
→ Todos los días a las 2 AM0 3 * * 0
→ Todos los domingos a las 3 AM30 14 * * 1-5
→ De lunes a viernes a las 14:300 */6 * * *
→ Cada 6 horas
4️⃣ Guardar el backup en un servidor Windows
Si deseas almacenar los backups en un servidor Windows, primero debes montar la carpeta compartida. Agrega esta línea al script:
mount -t cifs -o username=Administrador,password=TuContraseña //192.168.18.90/Backup /mnt/backup
Luego, modifica el directorio de backup en el script:
BACKUP_DIR="/mnt/backup"
5️⃣ Verificar que el backup funciona
Para probar manualmente el backup, ejecuta:
sudo /usr/local/bin/backup_moodle.sh
Para verificar que se está ejecutando automáticamente, usa:
cat /var/log/syslog | grep backup_moodle.sh
6️⃣ Restaurar un backup
Para restaurar la base de datos:
mysql -u $DB_USER -p$DB_PASS $DB_NAME < /backup/moodle_db_fecha.sql
Para restaurar los archivos de Moodle:
tar -xzvf /backup/moodle_files_fecha.tar.gz -C /
📌 Conclusión
Siguiendo estos pasos, Moodle se respaldará automáticamente en Ubuntu, asegurando la integridad de los datos y permitiendo almacenarlos en otro servidor de manera segura.