diff --git a/scripts/advanced.php b/scripts/advanced.php index 765016cb..06ef4c74 100644 --- a/scripts/advanced.php +++ b/scripts/advanced.php @@ -130,6 +130,13 @@ } } + if (isset($_GET["purge_threshold"])) { + $purge_threshold = $_GET["purge_threshold"]; + if (strcmp($purge_threshold, $config['PURGE_THRESHOLD']) !== 0) { + $contents = preg_replace("/PURGE_THRESHOLD=.*/", "PURGE_THRESHOLD=$purge_threshold", $contents); + } +} + if (isset($_GET["max_files_species"])) { $max_files_species = $_GET["max_files_species"]; if (strcmp($max_files_species, $config['MAX_FILES_SPECIES']) !== 0) { @@ -288,6 +295,9 @@ >Keep

When the disk becomes full, you can choose to 'purge' old files to make room for new ones or 'keep' your data and stop all services instead.
Note: you can exclude specific files from 'purge' on the Recordings page.


+ + +

Defines how full the disk should be before the purge operations occur.
Note: This variable is still active if Keep is set. This means that the servies will be stopped at the purge threshold.


diff --git a/scripts/disk_check.sh b/scripts/disk_check.sh index c6c98d8f..ba5b5e64 100755 --- a/scripts/disk_check.sh +++ b/scripts/disk_check.sh @@ -3,8 +3,9 @@ set -x source /etc/birdnet/birdnet.conf used="$(df -h ${EXTRACTED} | tail -n1 | awk '{print $5}')" +purge_threshold="${PURGE_THRESHOLD:-95}" -if [ "${used//%}" -ge 95 ]; then +if [ "${used//%}" -ge "$purge_threshold" ]; then case $FULL_DISK in purge) echo "Removing oldest data" @@ -34,7 +35,7 @@ if [ "${used//%}" -ge 95 ]; then esac fi sleep 1 -if [ "${used//%}" -ge 95 ]; then +if [ "${used//%}" -ge "$purge_threshold" ]; then case $FULL_DISK in purge) echo "Removing more data" rm -rfv ${PROCESSED}/*;; diff --git a/scripts/install_config.sh b/scripts/install_config.sh index 04701ddc..5099a22f 100755 --- a/scripts/install_config.sh +++ b/scripts/install_config.sh @@ -136,6 +136,10 @@ COLOR_SCHEME="light" FULL_DISK=purge +## PURGE_THRESHOLD can be set to configure at what disk full percentage the +## purge operations are triggered. +PURGE_THRESHOLD=95 + ## Maximum amount of files to keep for a given specie (0 = keep all) ## Files from the last 7 days, and files protected from purge, are not taken into ## account in this number diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index a6fef3bf..5b1adc46 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -94,6 +94,10 @@ if ! grep -E '^COLOR_SCHEME=' /etc/birdnet/birdnet.conf &>/dev/null;then echo "COLOR_SCHEME=\"light\"" >> /etc/birdnet/birdnet.conf fi +if ! grep -E '^PURGE_THRESHOLD=' /etc/birdnet/birdnet.conf &>/dev/null;then + echo "PURGE_THRESHOLD=95" >> /etc/birdnet/birdnet.conf +fi + if ! grep -E '^MAX_FILES_SPECIES=' /etc/birdnet/birdnet.conf &>/dev/null;then echo "MAX_FILES_SPECIES=\"0\"" >> /etc/birdnet/birdnet.conf fi