BigBlueButton에서 자동 녹음 정리 기능을 설정하는 방법

사용량이 많은 BigBlueButton 서버에서는 녹화 저장 공간이 빠르게 증가할 수 있지만, "정리"는 두 가지 매우 다른 의미를 가질 수 있습니다. 하나는 녹화가 게시된 후 원본 데이터를 삭제하는 것이고, 다른 하나는 보존 기간이 지난 후 게시된 녹화 자체를 삭제하는 것입니다. 잘못된 선택을 하면 디스크 공간이 낭비되거나 사용자가 예상하는 것보다 일찍 콘텐츠가 삭제될 수 있습니다.

이 가이드는 BigBlueButton 3.0 버전을 기준으로 작성되었으며, 공식 문서에서는 2026년 10월 현재 최신 프로덕션 브랜치로 명시하고 있습니다. BigBlueButton 4.0 문서도 제공되지만 아직 개발 중인 상태입니다. 프로덕션 시스템에서는 bbb-conf --check다른 브랜치의 문서에서 보존 설정을 복사하기 전에 설치된 버전을 확인하십시오. 자세한 내용은 BigBlueButton 공식 설치 문서를 참조하십시오 .

변경하기 전에 먼저 정리 정책을 선택하세요.

모든 환경에 적합한 단일 보존 기간은 없습니다. 대학에서는 한 학기 동안의 재생 접근 권한이 필요할 수 있지만, 내부 교육 서버에서는 30일 동안만 녹화 파일을 보관하면 될 수도 있습니다. 중요한 것은 원본 녹화 데이터 와 게시된 재생 파일 간의 차이점을 구분하는 것입니다 .

청소 선택절약되는 것주요 절충점가장 적합한
게시 후 원본 데이터를 삭제합니다.원료 매체 및 처리 재료원본 데이터가 삭제되면 해당 데이터로부터 녹음을 복원할 수 있는 기능을 잃게 됩니다.게시된 재생 기록을 유지하면서 디스크 용량 증가를 제어하려는 서버
N일이 지나면 전체 녹화 파일을 삭제합니다.게시된 기록 데이터 및 관련 기록 데이터해당 녹음 파일은 더 이상 사용자에게 제공되지 않습니다.30일, 60일 또는 90일과 같은 명확한 보존 정책
애플리케이션 제어 삭제통합 방식에 따라 다릅니다.정책 유연성은 높아지지만, 적용 로직과 운영 복잡성은 증가합니다.다중 테넌트 시스템 또는 과정별 유지 규칙이 있는 LMS 워크플로

BigBlueButton의 공식 사용자 지정 가이드에 따르면, 관리자는 처리 실패 시 녹화를 재구성하거나, 다른 녹화 형식을 추가하거나, 실수로 삭제한 경우 복구할 수 있도록 원시 데이터를 보존합니다. 하지만 이러한 이점에는 저장 공간 비용이 수반됩니다. 또한, BigBlueButton은 기본적으로 게시된 녹화물의 원시 데이터를 14일 후에 삭제한다고 명시되어 있습니다. 자세한 내용은 BigBlueButton 공식 문서의 서버 사용자 지정 부분을 참조하십시오 .

BigBlueButton의 디스크 사용량 및 최근 녹화 목록을 보여주는 터미널 화면입니다.
보존 기간을 선택하기 전에 현재 디스크 사용량과 최근 녹화 내용을 확인하세요. 중요한 기준점은 /var/bigbluebutton 디렉터리가 얼마나 빠르게 증가하는지, 그리고 사용자가 여전히 필요로 하는 녹화 내용이 무엇인지 파악하는 것입니다.

옵션 1: 게시된 녹음 파일은 유지하되 원본 데이터는 삭제합니다.

디스크 사용량이 주된 문제이지만 사용자에게 재생 링크가 여전히 필요한 경우, 내장된 원시 데이터 보존 설정부터 시작해 보세요. BigBlueButton의 일일 유지 관리 스크립트는 다음 위치에 있습니다 /etc/cron.daily/bigbluebutton. 문서에 명시된 기본값은 다음과 같습니다.

published_days=14

이 스크립트는 게시된 녹화 파일에 대한 원시 녹화 정리 기능도 호출합니다. 이 값을 늘리면 published_days재구축 복구 기간이 길어지고, 줄이면 저장 공간 사용량이 더 빨리 줄어듭니다. 관리자가 녹화 오류를 발견하는 데 시간이 필요한 경우에는 30일과 같은 값이 적절할 수 있지만, 저장 공간이 제한적이고 회의 직후 게시된 결과물을 확인하는 경우에는 더 짧은 기간이 적합합니다.

이를 전체 보존 정책과 혼동하지 마십시오. 변경 published_days한다고 해서 게시된 기록 자체가 해당 일 후에 사라지는 것은 아닙니다. 게시 후 원시 데이터가 얼마나 오랫동안 사용 가능한지 제어하는 ​​것입니다.

Nano 에디터에서 게시일 보존 기간이 설정된 BigBlueButton 일일 cron 파일을 보여줍니다.
내장된 일일 유지 관리 파일에는 게시된 기록의 원시 데이터에 사용되는 published_days 설정이 포함되어 있습니다.

옵션 2: 설정된 기간보다 오래된 전체 녹화 파일을 삭제합니다.

"녹화 파일은 30일 후 삭제되어야 한다"는 요구 사항이 있는 경우, BigBlueButton은 별도의 일일 정리 스크립트를 제공합니다. 공식 예제는 해당 스크립트를 생성하고 /etc/cron.daily/bbb-recording-cleanup, 게시된 상태 파일과 원시 녹화 데이터의 경과 시간을 확인하여, bbb-record --delete설정된 최대 경과 시간보다 오래된 녹화 파일을 삭제합니다.

삭제를 활성화하기 전에 후보 파일 세트를 검사하십시오. 30일 정책의 경우, 다음 읽기 전용 명령을 사용하면 임계값보다 오래된 게시된 프레젠테이션 상태 파일을 확인할 수 있습니다.

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

이것은 BigBlueButton의 모의 실행 명령이 아니라, 단순히 안전한 파일 시스템 검사입니다. 자동화된 작업이 데이터를 삭제하기 전에 정책 오류를 잡아내는 데 사용하십시오.

자동 정리 전 최근 BigBlueButton 녹화 목록을 보여주는 터미널 화면
전체 보존 정책을 시행하기 전에 최근 녹음 내역과 녹음 날짜를 검토하십시오.

정리 스크립트를 생성합니다.

생성 /etc/cron.daily/bbb-recording-cleanup. 다음 구현은 BigBlueButton의 공식 사용자 지정 가이드에 설명된 경로 및 삭제 방식을 따르면서 보존 값과 로그 파일을 쉽게 찾을 수 있도록 합니다.

#!/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

MAXAGE임의로 낮은 숫자로 설정하지 말고 정책에 맞게 설정하십시오 . 예를 들어 30일은 90일보다 저장 공간은 적게 차지하지만 복구 및 액세스 기간이 짧습니다. 녹화물이 공식적인 보존 요건의 일부인 경우 삭제를 활성화하기 전에 데이터 소유자와 정책을 확인하십시오.

MAXAGE 및 bbb-record 삭제 로직을 사용하는 BigBlueButton 정리 스크립트를 보여주는 Nano 편집기입니다.
정리 스크립트는 게시된 오래된 녹음 파일을 생성 시점별로 식별하고 해당 녹음 파일의 내부 회의 ID를 bbb-record --delete 명령에 전달할 수 있습니다.
BigBlueButton 일일 녹화 정리 스크립트의 다른 보기를 보여주는 Nano 편집기
정리 로직은 임의의 디렉터리를 이름으로 삭제하는 대신 BigBlueButton의 기록 상태 및 원시 데이터 경로를 기반으로 작동해야 합니다.

일일 스크립트를 실행 가능하게 만드세요

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

파일 이름에 확장자를 넣지 않은 것은 의도적인 것입니다. 우분투의 일일 작업 메커니즘은 일반적으로 를 사용하는데 run-parts, 이 파일의 규칙 때문에 점으로 끝나는 일부 파일 이름이 건너뛰어질 수 있습니다. 문서화된 파일 이름을 유지함으로써 bbb-recording-cleanup이러한 불필요한 혼란을 방지할 수 있습니다.

이 방식의 장점은 /etc/cron.daily정확한 타이밍보다는 단순함에 있습니다. 트래픽이 적은 특정 시간에 정리가 필요한 경우, 루트 cron 항목이나 systemd 타이머를 사용하여 더 정확한 스케줄링을 구현할 수 있지만, 이는 BigBlueButton에서 제공하는 기본 설정이 아닌 운영 체제에 맞게 직접 구성해야 합니다. 따라서 이 부분은 별도로 추적하고 테스트해야 합니다.

자동화 기능을 신뢰하기 전에 수동으로 정리 작업을 한 번 실행해 보세요.

후보 파일을 검토한 후 셸에서 스크립트를 한 번 실행하십시오.

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

BigBlueButton 문서 bbb-record --delete <internal-meeting-id>에는 회의 데이터와 녹화 내용을 삭제하는 명령어가 설명되어 있습니다. 녹화 관련 문서에는 이 명령어를 사용하면 실행 중인 회의도 삭제될 수 있다는 경고도 포함되어 있습니다. 따라서 적절한 보존 정책을 수립하려면 활성 회의가 삭제 대상이 되지 않도록 충분히 긴 기간의 임계값을 설정하고, 이전 녹화 파일에서 발견된 회의 ID만 삭제하도록 해야 합니다. 자세한 내용은 공식 녹화 및 재생 문서를 참조하십시오 .

BigBlueButton의 일일 녹화 정리 스크립트를 실행하고 해당 로그를 표시하는 터미널 화면입니다.
정리 작업을 수동으로 한 번 실행하고 로그를 확인한 후, 매일 자동으로 실행되도록 설정하십시오.
정리 로그에 BigBlueButton 녹화 삭제가 완료된 것을 보여주는 터미널 화면
유용한 정리 로그에는 삭제된 내부 회의 ID와 작업 완료 시간이 기록됩니다.

정리 작업이 의도한 대로 작동하는지 확인하십시오.

검증은 사용자에게 보이는 녹화 내용과 디스크 사용량 모두를 포함해야 합니다. BigBlueButton 자체의 녹화 명령부터 시작하세요.

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

bbb-record --list-recent최근 녹화된 10개의 영상을 보여줍니다. bbb-record --checkBigBlueButton 2.5 이상 버전에서 녹화 구성 및 권한을 확인합니다. 두 명령어 모두 저장소 모니터링을 대체하는 것은 아니므로 녹화 트리도 함께 확인해야 합니다.

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

디스크 사용량이 사용자에게 표시되는 재생 크기만큼 정확히 줄어들 것이라고 기대하지 마십시오. 원본 미디어, 처리 파일, 게시된 프레젠테이션 파일, 로그 및 임시 데이터는 별도로 저장되며, 각 범주별로 정리 시기가 다를 수 있습니다.

BigBlueButton 녹화 영상 목록을 보여주는 bbb-record list 명령어가 표시된 터미널 화면입니다.
정리 작업 후 bbb-record 목록 명령을 사용하여 예상되는 녹음 파일이 여전히 사용 가능한지 확인하십시오.

보존 기간을 선택하는 방법

적절한 보존 기간은 사용자 기대치, 복구 필요성, 사용 가능한 저장 공간이라는 세 가지 제약 조건을 고려하여 결정됩니다. 보존 기간이 짧으면 저장 공간 부담은 줄어들지만, 관리자가 처리 오류를 발견하거나 녹화를 재구축할 시간이 부족해집니다. 보존 기간이 길면 복구 유연성은 높아지지만 더 많은 디스크 공간이 필요하며, 데이터 최소화 요구 사항과 충돌할 수 있습니다.

  • 재생 기능은 유지하고, 저장 공간은 최소화하세요: 음질을 개선 published_days하고 공개된 녹음 파일은 그대로 두세요.
  • 재생 만료 시간을 엄격하게 적용하려면, 명확하게 문서화된 별도의 일일 정리 스크립트를 사용하십시오 MAXAGE.
  • 강좌별 또는 고객별 규칙이 필요한 경우, 모든 녹화물에 서버 전체에 적용되는 일률적인 보존 기간을 강제하는 대신, LMS 또는 애플리케이션 계층에서 보존 기간 결정을 내리고 BigBlueButton의 API를 의도적으로 활용하세요.
  • 재구축 유연성이 필요합니다. 원시 데이터를 최소 보존 기간보다 더 오래 보관하고 백업 용량이 해당 선택에 부합하는지 확인하십시오.

흔히 저지르는 실수들을 피하는 방법

첫 번째 흔한 실수는 published_days게시된 녹화 파일을 삭제한다고 생각하는 것입니다. 이 기능은 게시된 녹화 파일과 관련된 원시 데이터만 관리합니다. 두 번째는 rm -rfBigBlueButton 녹화 디렉터리를 기본 보존 메커니즘으로 사용하는 것입니다. 이렇게 하면 녹화 도구가 회의 ID를 인식하지 못하게 되어 데이터가 일관되지 않은 상태가 될 수 있습니다.

또 다른 실수는 실제 증가량을 측정하기 전에 보존 기간을 너무 공격적으로 설정하는 것입니다. 최소한 며칠간의 데이터를 수집한 du다음 df, 사용량이 많은 주를 고려하여 충분한 여유 기간을 두어야 합니다. BigBlueButton의 운영 환경 요구 사항 자체도 상당한 저장 공간을 필요로 하는데, 이는 파일 시스템이 거의 꽉 찼을 때의 비상 대응책이 아니라 용량 관리 차원에서 정리 작업을 설계해야 한다는 점을 상기시켜 줍니다.

최종 체크리스트

  • 설치된 BigBlueButton 버전을 다음 명령어로 확인하세요 bbb-conf --check.
  • 원시 데이터 정리만 필요한지 아니면 전체 기록 만료 처리가 필요한지 결정하세요.
  • 보존 기간을 선택하기 전에 현재 저장 공간 사용량을 측정하십시오.
  • 삭제를 활성화하기 전에 오래된 녹음 후보를 검토하십시오.
  • 일일 정리 스크립트를 생성하고 실행 가능하게 만드세요.
  • 수동으로 한 번 실행하고 로그를 확인하십시오.
  • 디스크 사용량을 bbb-record --list-recent다시 확인하십시오 .bbb-record --check
  • 재생 가능 기간이 얼마나 되는지 사용자가 알 수 있도록 보존 정책을 문서화하십시오.

대부분의 단일 서버 BigBlueButton 3.0 설치 환경에서 유지 관리가 가장 간편한 설계는 내장된 일일 작업이 복구 기간 후 게시된 녹화 파일의 원시 데이터를 삭제하도록 하고, bbb-recording-cleanup게시된 녹화 파일을 만료시켜야 할 경우에만 문서화된 일일 스크립트를 추가하는 것입니다. 이렇게 하면 두 가지 저장 관련 결정을 분리하고 모든 오래된 녹화 파일을 동일하게 처리하는 대신 각 결정 간의 장단점을 명확히 할 수 있습니다.

댓글 남기기

iPhone에서 Zimbra ActiveSync 연결 오류 해결하기

iPhone에서 Zimbra ActiveSync 연결 오류 해결하기

iPhone에서 Zimbra ActiveSync 오류를 해결하려면 계정 정보, 자격 증명, 인증서, 네트워크 경로 및 서버 정책을 확인하고 안전한 대안을 비교해 보세요.

ownCloud Infinite Scale과 Nextcloud 28 비교: 성능 및 RAM 사용량 설명

ownCloud Infinite Scale과 Nextcloud 28 비교: 성능 및 RAM 사용량 설명

ownCloud Infinite Scale과 Nextcloud 28의 아키텍처, 성능 동작, RAM 요구 사항, 캐싱, 확장성 및 실제 배포 시 고려 사항을 비교합니다.

Nextcloud "트랜잭션 파일 잠금이 구성되지 않았습니다" 오류 해결 방법

Nextcloud "트랜잭션 파일 잠금이 구성되지 않았습니다" 오류 해결 방법

Nextcloud의 트랜잭션 파일 잠금 경고를 해결하려면 배포 환경을 확인하고, Redis 또는 KeyValueCache를 구성하고, 관련 서비스를 재시작하고, 파일 작업을 검증하십시오.

Zimbra에서 외부 LDAP 인증을 구성하는 방법

Zimbra에서 외부 LDAP 인증을 구성하는 방법

실용적인 CLI 예제, TLS 안내, 바인드 DN 및 검색 필터 패턴, 검증 단계, 롤백 확인 등을 통해 Zimbra용 외부 LDAP 인증을 구성하세요.

BigBlueButton에서 자동 녹음 정리 기능을 설정하는 방법

BigBlueButton에서 자동 녹음 정리 기능을 설정하는 방법

cron, 보존 규칙, 로그 및 검증 기능을 사용하여 BigBlueButton 녹화 파일 정리 작업을 안전하게 자동화하세요. 원시 데이터 정리와 전체 녹화 파일 삭제를 비교해 보세요.

Jitsi Meet 라이브 스트리밍을 RTMP를 통해 YouTube로 설정하는 방법

Jitsi Meet 라이브 스트리밍을 RTMP를 통해 YouTube로 설정하는 방법

Jitsi Meet을 YouTube로 스트리밍하는 데 Jibri와 OBS를 비교하고, 올바른 경로를 설정하고, 스트림 키를 안전하게 사용하고, 라이브 미리보기를 확인하세요.

BigBlueButton과 Jitsi 비교: 리소스 사용량 및 기능 매트릭스

BigBlueButton과 Jitsi 비교: 리소스 사용량 및 기능 매트릭스

BigBlueButton과 Jitsi Meet을 서버 크기 산정, 녹화 비용, 교육 도구, 확장성, 그리고 자체 호스팅 배포를 선택하거나 크기를 조정해야 할 때 참고할 수 있는 실질적인 지표를 기준으로 비교합니다.

OCC를 사용하여 Nextcloud 유지 관리 모드가 계속 켜져 있는 문제 해결

OCC를 사용하여 Nextcloud 유지 관리 모드가 계속 켜져 있는 문제 해결

OCC를 사용하여 멈춘 Nextcloud 유지 관리 페이지를 안전하게 닫고, 업그레이드가 완료되지 않았는지 확인하고, 인스턴스가 사용자를 위해 준비되었는지 확인합니다.

Zimbra 발신 메일 지연 오류 해결: "포트 25 연결 시간 초과"

Zimbra 발신 메일 지연 오류 해결: "포트 25 연결 시간 초과"

Zimbra 발신 메일 지연 오류(포트 25)를 진단합니다. 큐, MX DNS, 방화벽, 공급자 차단을 확인하고 승인된 SMTP 릴레이를 구성하십시오.

Conduit을 사용하여 Raspberry Pi 4에 Matrix 서버를 설정하는 방법

Conduit을 사용하여 Raspberry Pi 4에 Matrix 서버를 설정하는 방법

Conduit, Docker, NGINX, HTTPS, 회원 관리, 연동 및 검사 기능을 갖춘 경량 Matrix 홈서버를 Raspberry Pi 4에 설치합니다.