Jak skonfigurować automatyczne czyszczenie nagrań w BigBlueButton
Na obciążonym serwerze BigBlueButton ilość miejsca na nagrania może szybko rosnąć, ale „czyszczenie” może oznaczać dwie zupełnie różne rzeczy: usunięcie surowych danych źródłowych po opublikowaniu nagrania lub usunięcie samego opublikowanego nagrania po upływie okresu przechowywania. Wybór niewłaściwej opcji może spowodować marnowanie miejsca na dysku lub usunięcie treści wcześniej, niż oczekują użytkownicy.
Niniejszy przewodnik koncentruje się na BigBlueButton 3.0, który w oficjalnej dokumentacji jest wymieniony jako aktualna gałąź produkcyjna (stan na październik 2026 r.). Dokumentacja BigBlueButton 4.0 jest dostępna, ale nadal oznaczona jako w fazie rozwoju. W przypadku systemów produkcyjnych, bbb-conf --checkprzed skopiowaniem ustawień retencji z dokumentacji innej gałęzi, należy potwierdzić zainstalowaną wersję za pomocą [brakuje informacji]. Zapoznaj się z oficjalną dokumentacją instalacji BigBlueButton .
Przed wprowadzeniem jakichkolwiek zmian wybierz zasady czyszczenia
Nie ma jednej wartości retencji, która pasowałaby do każdego wdrożenia. Uniwersytet może potrzebować dostępu do odtwarzania przez cały semestr, podczas gdy wewnętrzny serwer szkoleniowy może potrzebować nagrań tylko przez 30 dni. Przydatne jest rozróżnienie między surowymi danymi z nagrań a opublikowanymi plikami odtwarzania .
Wybór czyszczenia
Co to oszczędza
Główny kompromis
Najlepiej pasuje
Usuń surowe dane po publikacji
Surowce i materiały do przetwarzania
Po usunięciu oryginalnych danych w postaci nieprzetworzonej tracisz możliwość odtworzenia nagrania
Serwery, które chcą zachować opublikowane odtwarzanie, ale kontrolują wzrost dysku
Usuń kompletne nagrania po N dniach
Opublikowane i powiązane dane rejestracyjne
Nagranie nie jest już dostępne dla użytkowników
Jasne zasady przechowywania, np. 30, 60 lub 90 dni
Usuwanie kontrolowane przez aplikację
Zależy od integracji
Większa elastyczność polityki, ale większa logika aplikacji i złożoność operacyjna
Systemy wielodostępne lub przepływy pracy LMS z regułami przechowywania danych dla poszczególnych kursów
Oficjalny przewodnik BigBlueButton dotyczący personalizacji informuje, że surowe dane są zachowywane, dzięki czemu administratorzy mogą odbudować nagranie w przypadku niepowodzenia przetwarzania, dodać inny format nagrania lub odzyskać dane po przypadkowym usunięciu. Ta korzyść wiąże się z kosztami przechowywania. Ta sama dokumentacja podaje, że BigBlueButton domyślnie usuwa surowe dane opublikowanych nagrań po 14 dniach. Zobacz sekcję „Dostosowywanie serwera” w oficjalnej dokumentacji BigBlueButton .
Przed wyborem okresu przechowywania sprawdź aktualne wykorzystanie dysku i ostatnie nagrania. Ważnym punktem odniesienia jest szybkość rozrastania się katalogu /var/bigbluebutton i to, jakich nagrań użytkownicy nadal potrzebują.
Opcja 1: zachowaj opublikowane nagrania, ale usuń surowe dane
Jeśli głównym problemem jest zużycie dysku, ale użytkownicy nadal potrzebują linków do odtwarzania, zacznij od wbudowanego ustawienia przechowywania surowych danych. Skrypt codziennej konserwacji BigBlueButton znajduje się pod adresem /etc/cron.daily/bigbluebutton. Udokumentowana wartość domyślna to:
published_days=14
Skrypt wywołuje również funkcję czyszczenia surowych nagrań dla opublikowanych nagrań. Wydłużenie published_daystego czasu wydłuża okno odzyskiwania danych w przypadku odbudowy; skrócenie go zmniejsza zużycie pamięci masowej szybciej. Wartość taka jak 30 dni może być odpowiednia, gdy administratorzy rutynowo potrzebują czasu na wykrycie usterek w nagraniach, natomiast krótszy okres jest bardziej odpowiedni, gdy pojemność pamięci masowej jest ograniczona, a opublikowane dane wyjściowe są rutynowo sprawdzane wkrótce po spotkaniach.
Nie należy mylić tego z polityką pełnego przechowywania. Zmiana published_daysnie oznacza, że samo opublikowane nagranie zniknie po upływie określonej liczby dni. Kontroluje ona, jak długo surowe dane pozostają dostępne po publikacji.
Wbudowany plik codziennej konserwacji zawiera ustawienie published_days używane w przypadku surowych danych z opublikowanych nagrań.
Opcja 2: usuń kompletne nagrania starsze niż ustalony wiek
Jeśli Twoim wymaganiem jest „nagrania muszą zniknąć po 30 dniach”, BigBlueButton dokumentuje oddzielny, codzienny skrypt czyszczący. Oficjalny przykład tworzy /etc/cron.daily/bbb-recording-cleanup, sprawdza wiek opublikowanych plików statusu i surowych danych nagrań oraz odwołuje się bbb-record --deletedo nagrań starszych niż skonfigurowany maksymalny wiek.
Przed włączeniem usuwania sprawdź zestaw kandydatów. W przypadku polityki 30-dniowej to polecenie tylko do odczytu pozwala sprawdzić, które opublikowane pliki ze statusem prezentacji są starsze niż próg:
To nie jest polecenie BigBlueButton do wykonania na sucho; to po prostu bezpieczna kontrola systemu plików. Użyj go, aby wykryć błędy w polityce, zanim automatyczne zadanie rozpocznie usuwanie danych.
Przed wdrożeniem polityki pełnego przechowywania przejrzyj najnowsze nagrania i ich daty.
Utwórz skrypt czyszczący
Utwórz /etc/cron.daily/bbb-recording-cleanup. Poniższa implementacja wykorzystuje podejście do ścieżek i usuwania opisane w oficjalnym przewodniku dostosowywania BigBlueButton, jednocześnie zapewniając łatwość odnalezienia wartości retencji i pliku dziennika:
#!/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
Ustaw MAXAGEzgodnie ze swoją polityką, a nie na dowolnie niską liczbę. Na przykład 30 dni oznacza mniejszą przestrzeń dyskową, ale krótszy czas odzyskiwania i dostępu niż 90 dni. Jeśli nagrania są częścią formalnego wymogu przechowywania, przed włączeniem usuwania należy potwierdzić zasady z właścicielem danych.
Skrypt czyszczący może zidentyfikować stare opublikowane nagrania według wieku i przekazać ich wewnętrzne identyfikatory spotkań do polecenia bbb-record --delete.Logika czyszczenia powinna działać na podstawie stanu nagrywania BigBlueButton oraz ścieżek surowych danych, a nie usuwać dowolnych katalogów według nazwy.
Uczyń skrypt dzienny wykonywalnym
sudo chmod +x /etc/cron.daily/bbb-recording-cleanup
sudo ls -l /etc/cron.daily/bbb-recording-cleanup
Nazwa pliku celowo nie ma rozszerzenia. Mechanizm codziennych zadań Ubuntu często korzysta z rozszerzenia run-parts, którego reguły nazewnictwa plików mogą powodować pomijanie niektórych nazw z kropkami. Zachowanie udokumentowanej nazwy bbb-recording-cleanuppozwala uniknąć tego niepotrzebnego źródła nieporozumień.
Wadą /etc/cron.dailyjest prostota, a nie precyzyjny harmonogram. Jeśli potrzebujesz czyszczenia w precyzyjnie wyznaczonym czasie, gdy ruch jest niewielki, wpis w cronie root lub timer systemd może zapewnić dokładniejszy harmonogram, ale staje się to Twoim własnym dostosowaniem systemu operacyjnego, a nie domyślnym ustawieniem udokumentowanym przez BigBlueButton. Śledź to i testuj osobno.
Uruchom czyszczenie ręcznie raz przed zaufaniem automatyzacji
Po przejrzeniu plików kandydatów uruchom skrypt raz z poziomu powłoki:
Dokumentacja BigBlueButton bbb-record --delete <internal-meeting-id>opisuje polecenie, które usuwa dane ze spotkania i jego nagranie. Dokumentacja nagrywania ostrzega również, że to polecenie może usunąć trwające spotkanie. Dlatego rozsądna polityka przechowywania danych stosuje wystarczająco wysoki próg wieku, aby aktywne spotkanie nigdy się do niego nie zakwalifikowało, i usuwa tylko identyfikatory wykryte w starych artefaktach nagrania. Zobacz oficjalną dokumentację nagrywania i odtwarzania .
Uruchom zadanie czyszczenia ręcznie jeden raz i przejrzyj jego dziennik, zanim zaczniesz polegać na codziennym, bezobsługowym wykonywaniu czynności.Przydatny dziennik czyszczenia rejestruje, które wewnętrzne identyfikatory spotkań zostały usunięte i kiedy zadanie zostało ukończone.
Sprawdź, czy czyszczenie działa zgodnie z oczekiwaniami
Weryfikacja powinna obejmować zarówno nagrania widoczne dla użytkownika, jak i użycie dysku. Zacznij od własnych poleceń nagrywania BigBlueButton:
bbb-record --list-recentWyświetla dziesięć najnowszych nagrań. bbb-record --checkSprawdza konfigurację nagrywania i uprawnienia w BigBlueButton 2.5 i nowszych. Żadne z tych poleceń nie zastępuje monitorowania pamięci masowej, więc mierzy również drzewo nagrań:
df -h /var/bigbluebutton
sudo du -sh /var/bigbluebutton/recording /var/bigbluebutton/published
Nie należy oczekiwać, że wykorzystanie dysku spadnie dokładnie o rozmiar wyświetlany użytkownikom. Surowe multimedia, pliki przetwarzania, opublikowane pliki prezentacji, dzienniki i dane tymczasowe są przechowywane osobno, a czas czyszczenia może się różnić w zależności od kategorii.
Po oczyszczeniu użyj poleceń bbb-record, aby upewnić się, że oczekiwane nagrania nadal są dostępne.
Jak wybrać okres przechowywania
Przydatna wartość retencji wynika z trzech ograniczeń: oczekiwań użytkowników, potrzeb w zakresie odzyskiwania danych oraz dostępnej pamięci masowej. Krótki czas retencji zmniejsza obciążenie pamięci masowej, ale daje administratorom mniej czasu na wykrywanie błędów przetwarzania lub odbudowę nagrań. Długi czas retencji zwiększa elastyczność odzyskiwania danych, ale wymaga więcej miejsca na dysku i może kolidować z wymogami minimalizacji danych.
Zachowaj możliwość odtwarzania, zminimalizuj ilość miejsca na dane w postaci surowej: dostrój published_daysi pozostaw opublikowane nagrania nienaruszone.
Wymuś trwałe wygaśnięcie odtwarzania: użyj oddzielnego codziennego skryptu czyszczącego z jasno udokumentowaną wersją MAXAGE.
Potrzebne są reguły dotyczące danego kursu lub klienta: decyzje dotyczące retencji należy podejmować na poziomie LMS lub warstwy aplikacji, a interfejs API BigBlueButton należy wykorzystywać rozważnie, zamiast narzucać jeden wiek dla całego serwera dla każdego nagrania.
Potrzebujesz elastyczności w zakresie odbudowy: przechowuj surowe dane dłużej niż jest to konieczne i upewnij się, że pojemność kopii zapasowej odpowiada temu wyborowi.
Typowe błędy, których należy unikać
Pierwszym częstym błędem jest założenie, że published_daysusuwa opublikowane nagrania. Dotyczy to jedynie surowych danych powiązanych z opublikowanymi nagraniami. Drugim jest używanie rm -rfich jako głównego mechanizmu przechowywania do katalogów nagrań BigBlueButton. To pomija wiedzę narzędzia do nagrywania o identyfikatorach spotkań i może powodować niespójny stan.
Kolejnym błędem jest agresywne ustawianie retencji przed zmierzeniem faktycznego wzrostu. Należy zarejestrować dane z co najmniej kilku dni , dua dfnastępnie wybrać okres, który pozostawi wystarczająco dużo miejsca na wyjątkowo pracowite tygodnie. Same wymagania produkcyjne BigBlueButton wymagają dużej ilości miejsca na nagrania, co przypomina, że czyszczenie powinno być zaprojektowane jako zarządzanie pojemnością, a nie jako reakcja awaryjna, gdy system plików jest prawie pełny.
Ostateczna lista kontrolna
Potwierdź zainstalowaną wersję BigBlueButton za pomocą bbb-conf --check.
Zdecyduj, czy potrzebujesz jedynie oczyszczenia surowych danych, czy całkowitego wygaśnięcia nagrań.
Przed wyborem okresu przechowywania zmierz aktualne wykorzystanie pamięci masowej.
Przed zezwoleniem na usunięcie przejrzyj stare nagrania.
Utwórz skrypt codziennego czyszczenia i uczyń go wykonywalnym.
Uruchom go ręcznie raz i sprawdź dziennik.
Sprawdź ponownie bbb-record --list-recent, bbb-record --check, i użycie dysku.
Udokumentuj zasady przechowywania, aby użytkownicy wiedzieli, jak długo pliki do odtworzenia będą dostępne.
W przypadku większości instalacji BigBlueButton 3.0 na jednym serwerze, projekt wymagający najmniejszej konserwacji polega na tym, że wbudowane zadanie codzienne usuwa surowe dane opublikowanych nagrań po upływie okna odzyskiwania, a następnie dodaje udokumentowany bbb-recording-cleanupskrypt dzienny tylko wtedy, gdy wymagane jest wygaśnięcie opublikowanych nagrań. To oddziela dwie różne decyzje dotyczące przechowywania i wyraźnie określa kompromis, zamiast traktować każdy stary plik nagrania w ten sam sposób.