mirror of
https://github.com/bigbluebutton/docker.git
synced 2024-12-29 09:58:55 +01:00
42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
|
#!/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
|