42 lines
1.7 KiB
Bash
Executable File
42 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Source: https://docs.bigbluebutton.org/admin/customize.html#delete-recordings-older-than-n-days
|
|
|
|
set -e
|
|
LOGFILE=/var/log/bigbluebutton/bbb-recording-cleanup-$(date --iso-8601='seconds' -u).log
|
|
shopt -s nullglob
|
|
NOW=$(date +%s)
|
|
|
|
echo "$(date --rfc-3339=seconds) Deleting recordings older than ${RECORDING_MAX_AGE_DAYS} days" >"${LOGFILE}"
|
|
|
|
# Find the name of recordings container in order to access `bbb-record` utility
|
|
BBB_RECORDINGS_CONTAINER_NAME=$(docker ps --filter "name=recordings" --filter "status=running" --format "{{.Names}}")
|
|
if [ $BBB_RECORDINGS_CONTAINER_NAME == "" ]; then
|
|
echo "$(date --rfc-3339=seconds) ERROR: recordings container is not running" >>"${LOGFILE}"
|
|
exit 1
|
|
fi
|
|
|
|
for donefile in /var/bigbluebutton/recording/status/published/*-presentation.done ; do
|
|
MTIME=$(stat -c %Y "${donefile}")
|
|
# Check the age of the recording
|
|
if [ $(( ( $NOW - $MTIME ) / 86400 )) -gt $RECORDING_MAX_AGE_DAYS ]; then
|
|
MEETING_ID=$(basename "${donefile}")
|
|
MEETING_ID=${MEETING_ID%-presentation.done}
|
|
echo "${MEETING_ID}" >> "${LOGFILE}"
|
|
|
|
docker exec "$BBB_RECORDINGS_CONTAINER_NAME" bbb-record --delete "${MEETING_ID}" >>"${LOGFILE}"
|
|
fi
|
|
done
|
|
|
|
for eventsfile in /var/bigbluebutton/recording/raw/*/events.xml ; do
|
|
MTIME=$(stat -c %Y "${eventsfile}")
|
|
# Check the age of the recording
|
|
if [ $(( ( $NOW - $MTIME ) / 86400 )) -gt $RECORDING_MAX_AGE_DAYS ]; then
|
|
MEETING_ID="${eventsfile%/events.xml}"
|
|
MEETING_ID="${MEETING_ID##*/}"
|
|
echo "${MEETING_ID}" >> "${LOGFILE}"
|
|
|
|
docker exec "$BBB_RECORDINGS_CONTAINER_NAME" bbb-record --delete "${MEETING_ID}" >>"${LOGFILE}"
|
|
fi
|
|
done
|