Cómo configurar la limpieza automática de grabaciones en BigBlueButton

El almacenamiento de grabaciones puede crecer rápidamente en un servidor BigBlueButton con mucha actividad, pero "limpieza" puede significar dos cosas muy diferentes: eliminar los datos originales después de que se haya publicado una grabación o eliminar la grabación publicada después de un período de retención. Elegir la opción incorrecta puede desperdiciar espacio en disco o eliminar el contenido antes de lo que esperan los usuarios.

Esta guía se centra en BigBlueButton 3.0, que según la documentación oficial es la rama de producción actual a partir de octubre de 2026. La documentación de BigBlueButton 4.0 está disponible, pero aún se encuentra en desarrollo. Para sistemas de producción, confirme la versión instalada bbb-conf --checkantes de copiar la configuración de retención de la documentación de otra rama. Consulte la documentación oficial de instalación de BigBlueButton .

Elija la política de limpieza antes de cambiar nada.

No existe un valor de retención único que se ajuste a todas las implementaciones. Una universidad puede necesitar acceso a la reproducción durante todo un semestre, mientras que un servidor de capacitación interno solo puede necesitar grabaciones durante 30 días. La distinción útil radica en diferenciar entre los datos de grabación sin procesar y los archivos de reproducción publicados .

Opción de limpiezaLo que ahorraprincipal compensaciónMejor ajuste
Eliminar los datos sin procesar después de la publicaciónMaterias primas y material de procesamientoUna vez eliminada la grabación, se pierde la capacidad de reconstruirla a partir de los datos originales sin procesar.Servidores que desean mantener la reproducción publicada pero controlar el crecimiento del disco.
Eliminar grabaciones completas después de N díasDatos de registro publicados y asociadosLa grabación ya no está disponible para los usuarios.Políticas de retención claras, como 30, 60 o 90 días.
Eliminación controlada por la aplicaciónDepende de la integraciónMayor flexibilidad en las políticas, pero mayor lógica de aplicación y complejidad operativa.Sistemas multiusuario o flujos de trabajo LMS con reglas de retención por curso

La guía de personalización oficial de BigBlueButton indica que los datos sin procesar se conservan para que los administradores puedan reconstruir una grabación si falla el procesamiento, añadir otro formato de grabación o recuperarse de una eliminación accidental. Esta ventaja tiene un coste de almacenamiento. La misma documentación indica que BigBlueButton elimina los datos sin procesar de las grabaciones publicadas después de 14 días de forma predeterminada. Consulte la sección « Personalización del servidor» en la documentación oficial de BigBlueButton .

Terminal que muestra el uso del disco de grabación de BigBlueButton y la lista de grabaciones recientes.
Antes de elegir un período de retención, compruebe el uso actual del disco y las grabaciones recientes. Lo importante es saber con qué rapidez crece /var/bigbluebutton y qué grabaciones siguen necesitando los usuarios.

Opción 1: conservar las grabaciones publicadas pero eliminar los datos sin procesar.

Si su principal problema es el consumo de disco, pero los usuarios aún necesitan enlaces de reproducción, comience con la configuración de retención de datos sin procesar integrada. El script de mantenimiento diario de BigBlueButton se encuentra en /etc/cron.daily/bigbluebutton. El valor predeterminado documentado es:

published_days=14

El script también llama a la función de limpieza de grabaciones sin procesar para las grabaciones publicadas. Aumentar este valor published_daysproporciona un período de recuperación más largo para las reconstrucciones; disminuirlo reduce el uso de almacenamiento más rápidamente. Un valor como 30 días puede ser razonable cuando los administradores necesitan tiempo para detectar defectos en las grabaciones, mientras que un período más corto es más apropiado cuando el almacenamiento es limitado y la salida publicada se revisa de forma rutinaria poco después de las reuniones.

No confunda esto con una política de retención total. Cambiarla published_daysno significa que la grabación publicada vaya a desaparecer después de ese número de días. Controla cuánto tiempo permanecen disponibles los datos sin procesar tras su publicación.

Editor Nano que muestra el archivo cron diario de BigBlueButton con retención de published_days
El archivo de mantenimiento diario integrado contiene la configuración published_days que se utiliza para los datos brutos de las grabaciones publicadas.

Opción 2: eliminar grabaciones completas con una antigüedad superior a un período determinado.

Si su requisito es que las grabaciones desaparezcan después de 30 días, BigBlueButton documenta un script de limpieza diaria independiente. El ejemplo oficial crea un archivo /etc/cron.daily/bbb-recording-cleanup, verifica la antigüedad de los archivos de estado publicados y los datos de grabación sin procesar, y solicita bbb-record --deletelas grabaciones que superen la antigüedad máxima configurada.

Antes de habilitar la eliminación, inspeccione el conjunto de candidatos. Para una política de 30 días, este comando de solo lectura le ayuda a ver qué archivos de estado de presentación publicados son anteriores al umbral:

sudo find /var/bigbluebutton/recording/status/published \
  -type f -name '*-presentation.done' -mtime +30 -print

Esto no es un comando de prueba de BigBlueButton; simplemente es una comprobación segura del sistema de archivos. Úselo para detectar errores en las políticas antes de que un proceso automatizado comience a eliminar datos.

La terminal muestra las grabaciones recientes de BigBlueButton antes de la limpieza automatizada.
Antes de aplicar una política de retención total, revise las grabaciones recientes y sus fechas.

Crear el script de limpieza

Crear /etc/cron.daily/bbb-recording-cleanup. La siguiente implementación sigue las rutas y el enfoque de eliminación descritos en la guía de personalización oficial de BigBlueButton, al tiempo que mantiene el valor de retención y el archivo de registro fáciles de encontrar:

#!/bin/bash
set -u

MAXAGE=30
LOGFILE=/var/log/bigbluebutton/bbb-recording-cleanup.log
NOW=$(date +%s)

shopt -s nullglob

for donefile in /var/bigbluebutton/recording/status/published/*-presentation.done; do
    MTIME=$(stat -c %Y "$donefile")
    AGE=$(( (NOW - MTIME) / 86400 ))

    if [ "$AGE" -gt "$MAXAGE" ]; then
        MEETING_ID=$(basename "$donefile")
        MEETING_ID=${MEETING_ID%-presentation.done}
        echo "$(date --rfc-3339=seconds) deleting $MEETING_ID age=${AGE}d" >> "$LOGFILE"
        bbb-record --delete "$MEETING_ID" >> "$LOGFILE" 2>&1
    fi
done

for eventsfile in /var/bigbluebutton/recording/raw/*/events.xml; do
    MTIME=$(stat -c %Y "$eventsfile")
    AGE=$(( (NOW - MTIME) / 86400 ))

    if [ "$AGE" -gt "$MAXAGE" ]; then
        MEETING_ID=${eventsfile%/events.xml}
        MEETING_ID=${MEETING_ID##*/}
        echo "$(date --rfc-3339=seconds) deleting raw $MEETING_ID age=${AGE}d" >> "$LOGFILE"
        bbb-record --delete "$MEETING_ID" >> "$LOGFILE" 2>&1
    fi
done

Establézcalo MAXAGEsegún su política, no con un número arbitrariamente bajo. Por ejemplo, 30 días reduce el espacio de almacenamiento, pero ofrece un período de recuperación y acceso más corto que 90 días. Si las grabaciones forman parte de un requisito formal de retención, confirme la política con el propietario de los datos antes de habilitar la eliminación.

Editor Nano que muestra un script de limpieza de BigBlueButton con MAXAGE y lógica de eliminación de registros bbb.
Un script de limpieza puede identificar grabaciones antiguas publicadas por su antigüedad y pasar sus ID de reunión internos a bbb-record --delete.
El editor Nano muestra otra vista del script de limpieza de grabaciones diarias de BigBlueButton.
La lógica de limpieza debería operar sobre el estado de grabación de BigBlueButton y las rutas de datos sin procesar, en lugar de eliminar directorios arbitrarios por nombre.

Haz que el script diario sea ejecutable.

sudo chmod +x /etc/cron.daily/bbb-recording-cleanup
sudo ls -l /etc/cron.daily/bbb-recording-cleanup

El nombre del archivo no tiene extensión intencionadamente. El mecanismo de tareas diarias de Ubuntu suele usar run-parts, cuyas reglas de nombres de archivo pueden provocar que se omitan algunos nombres con puntos. Mantener el nombre documentado bbb-recording-cleanupevita esa fuente innecesaria de confusión.

La desventaja radica en /etc/cron.dailyla simplicidad, más que en la precisión temporal. Si necesita realizar la limpieza en un momento preciso de baja actividad, una entrada de cron o un temporizador de systemd pueden ofrecer una programación más precisa, pero esto implica una personalización de su sistema operativo, en lugar de la configuración predeterminada documentada por BigBlueButton. Realice un seguimiento y pruébelo por separado.

Ejecuta la limpieza manualmente una vez antes de confiar en la automatización.

Tras revisar los archivos candidatos, ejecute el script una vez desde la consola:

sudo /etc/cron.daily/bbb-recording-cleanup
sudo tail -n 50 /var/log/bigbluebutton/bbb-recording-cleanup.log

BigBlueButton documenta bbb-record --delete <internal-meeting-id>el comando para eliminar los datos y la grabación de una reunión. La documentación de grabación advierte que este comando puede borrar una reunión en curso. Por lo tanto, una política de retención sensata utiliza un umbral de antigüedad lo suficientemente amplio como para que una reunión activa nunca cumpla con los requisitos, y solo elimina los identificadores detectados en archivos de grabación antiguos. Consulte la documentación oficial de Grabación y Reproducción .

Terminal ejecutando el script de limpieza de grabaciones diarias de BigBlueButton y mostrando su registro.
Ejecute la tarea de limpieza manualmente una sola vez e inspeccione su registro antes de confiar en la ejecución diaria desatendida.
Terminal que muestra las eliminaciones de grabaciones de BigBlueButton completadas en el registro de limpieza.
Un útil registro de limpieza indica qué identificadores de reuniones internas se eliminaron y cuándo finalizó la tarea.

Verifique que la limpieza esté funcionando como usted esperaba.

La verificación debe abarcar tanto las grabaciones visibles para el usuario como el uso del disco. Comience con los comandos de grabación propios de BigBlueButton:

sudo bbb-record --list-recent
sudo bbb-record --check

bbb-record --list-recentMuestra las diez grabaciones más recientes. bbb-record --checkComprueba la configuración y los permisos de grabación en BigBlueButton 2.5 y versiones posteriores. Ninguno de los comandos reemplaza la monitorización del almacenamiento, por lo que también se mide el árbol de grabación:

df -h /var/bigbluebutton
sudo du -sh /var/bigbluebutton/recording /var/bigbluebutton/published

No espere que el uso del disco se reduzca exactamente en la misma cantidad que el tamaño de reproducción que se muestra a los usuarios. Los archivos multimedia sin procesar, los archivos de procesamiento, los archivos de presentación publicados, los registros y los datos temporales se almacenan por separado, y el tiempo de limpieza puede variar entre las distintas categorías.

Terminal que muestra el comando bbb-record list con las grabaciones publicadas de BigBlueButton.
Utilice los comandos de listado de registros bbb después de la limpieza para confirmar que las grabaciones esperadas siguen estando disponibles.

Cómo elegir un período de retención

Un valor de retención adecuado depende de tres factores: las expectativas del usuario, las necesidades de recuperación y el espacio de almacenamiento disponible. Un período de retención corto reduce la presión sobre el almacenamiento, pero ofrece a los administradores menos tiempo para detectar fallos de procesamiento o reconstruir grabaciones. Un período de retención largo aumenta la flexibilidad de recuperación, pero requiere más espacio en disco y puede entrar en conflicto con los requisitos de minimización de datos.

  • Conserva la reproducción, minimiza el almacenamiento en bruto: ajusta published_daysy deja intactas las grabaciones publicadas.
  • Imponga una caducidad de reproducción estricta: utilice el script de limpieza diario independiente con una documentación clara MAXAGE.
  • Si se necesitan reglas por curso o por cliente, es necesario implementar las decisiones de retención en la capa del LMS o de la aplicación y usar la API de BigBlueButton de forma deliberada, en lugar de imponer una antigüedad global del servidor a todas las grabaciones.
  • Se requiere flexibilidad en la reconstrucción: conservar los datos sin procesar durante más tiempo del mínimo y asegurarse de que la capacidad de copia de seguridad se ajuste a esa elección.

Errores comunes que se deben evitar

El primer error común es suponer que published_dayselimina las grabaciones publicadas. Solo gestiona los datos sin procesar asociados a dichas grabaciones. El segundo es utilizar rm -rflos directorios de grabación de BigBlueButton como mecanismo principal de retención. Esto ignora el conocimiento que tiene la herramienta de grabación sobre los ID de las reuniones y puede generar un estado inconsistente.

Otro error común es establecer una retención excesiva antes de medir el crecimiento real. Capture al menos varios días de datos duy df, a continuación, seleccione un período que deje suficiente margen para semanas con mucha actividad. Los requisitos de producción de BigBlueButton exigen un almacenamiento de grabación considerable, lo que nos recuerda que la limpieza debe diseñarse como una gestión de capacidad, no como una reacción de emergencia cuando el sistema de archivos está casi lleno.

Lista de verificación final

  • Confirme la versión instalada de BigBlueButton con bbb-conf --check.
  • Decida si solo necesita limpiar los datos sin procesar o si necesita eliminar por completo la fecha de caducidad de las grabaciones.
  • Mida el uso actual del almacenamiento antes de seleccionar un período de retención.
  • Revise los archivos candidatos antiguos antes de habilitar su eliminación.
  • Crea el script de limpieza diario y hazlo ejecutable.
  • Ejecútalo manualmente una vez e inspecciona el registro.
  • Vuelva a comprobar bbb-record --list-recent, bbb-record --check, y el uso del disco.
  • Documente la política de retención para que los usuarios sepan cuánto tiempo estará disponible la reproducción.

Para la mayoría de las instalaciones de BigBlueButton 3.0 en un solo servidor, el diseño que requiere menos mantenimiento consiste en permitir que la tarea diaria integrada elimine los datos sin procesar de las grabaciones publicadas tras un período de recuperación, y añadir el bbb-recording-cleanupscript diario documentado solo cuando también sea necesario que caduquen las grabaciones publicadas. Esto permite separar dos decisiones de almacenamiento distintas y explicitar la compensación, en lugar de tratar todos los archivos de grabación antiguos de la misma manera.

Dejar un comentario

Soluciona el problema de Zimbra Amavis que consume el 100% de la CPU sin interrumpir el flujo de correo.

Soluciona el problema de Zimbra Amavis que consume el 100% de la CPU sin interrumpir el flujo de correo.

Aprende a diagnosticar y solucionar problemas de Zimbra Amavis con un uso de CPU del 100% revisando las colas, los registros, SpamAssassin, ClamAV y las señales de recuperación antes de realizar cambios arriesgados.

Solucionar errores de conexión de Zimbra ActiveSync en iPhone

Solucionar errores de conexión de Zimbra ActiveSync en iPhone

Solucione los errores de Zimbra ActiveSync en su iPhone revisando los detalles de la cuenta, las credenciales, los certificados, las rutas de red y la política del servidor, y compare alternativas seguras.

ownCloud Infinite Scale frente a Nextcloud 28: Explicación del rendimiento y el uso de RAM

ownCloud Infinite Scale frente a Nextcloud 28: Explicación del rendimiento y el uso de RAM

Compare ownCloud Infinite Scale y Nextcloud 28 en cuanto a arquitectura, comportamiento del rendimiento, requisitos de RAM, almacenamiento en caché, escalabilidad y ventajas e inconvenientes prácticos de la implementación.

Solucionar el error de Nextcloud "El bloqueo de archivos transaccionales no está configurado".

Solucionar el error de Nextcloud "El bloqueo de archivos transaccionales no está configurado".

Solucione la advertencia de bloqueo de archivos transaccionales de Nextcloud revisando su implementación, configurando Redis o KeyValueCache, reiniciando los servicios correspondientes y verificando las operaciones de archivos.

Cómo configurar la autenticación LDAP externa para Zimbra

Cómo configurar la autenticación LDAP externa para Zimbra

Configure la autenticación LDAP externa para Zimbra con ejemplos prácticos de CLI, guía de TLS, patrones de bind-DN ​​y search-filter, pasos de verificación y comprobaciones de reversión.

Cómo configurar la limpieza automática de grabaciones en BigBlueButton

Cómo configurar la limpieza automática de grabaciones en BigBlueButton

Configure una limpieza automatizada y segura de las grabaciones de BigBlueButton mediante cron, reglas de retención, registros y verificación. Compare la limpieza de datos sin procesar con la eliminación completa de las grabaciones.

Cómo configurar la transmisión en vivo de Jitsi Meet a YouTube a través de RTMP

Cómo configurar la transmisión en vivo de Jitsi Meet a YouTube a través de RTMP

Compara Jibri y OBS para transmitir Jitsi Meet a YouTube, luego configura la ruta correcta, usa tu clave de transmisión de forma segura y verifica la vista previa en vivo.

BigBlueButton vs. Jitsi Meet: Uso de recursos y matriz de características

BigBlueButton vs. Jitsi Meet: Uso de recursos y matriz de características

Compare BigBlueButton y Jitsi Meet en función del dimensionamiento documentado del servidor, los costos de registro, las herramientas de enseñanza, la escalabilidad y las señales prácticas para elegir o redimensionar una implementación autohospedada.

Solucionar el problema del modo de mantenimiento de Nextcloud atascado en OCC

Solucionar el problema del modo de mantenimiento de Nextcloud atascado en OCC

Con OCC, puede desbloquear de forma segura una página de mantenimiento de Nextcloud que se haya quedado atascada, comprobar si una actualización está incompleta y verificar que la instancia esté lista para los usuarios.

Solucionar el error de correo saliente diferido de Zimbra: "Tiempo de espera de conexión agotado en el puerto 25"

Solucionar el error de correo saliente diferido de Zimbra: "Tiempo de espera de conexión agotado en el puerto 25"

Diagnostica los errores de correo saliente diferido de Zimbra en el puerto 25. Verifica la cola, el DNS MX, los firewalls, los bloqueos del proveedor y configura un relé SMTP aprobado.