diff --git a/scripts/advanced.php b/scripts/advanced.php index fd484d4..468e4df 100644 --- a/scripts/advanced.php +++ b/scripts/advanced.php @@ -130,6 +130,13 @@ if(isset($_GET['submit'])) { } } + if (isset($_GET["purge_threshold"])) { + $purge_threshold = $_GET["purge_threshold"]; + if (strcmp($purge_threshold, $config['PURGE_THERSHOLD']) !== 0) { + $contents = preg_replace("/PURGE_THERSHOLD=.*/", "PURGE_THERSHOLD=$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) { @@ -297,6 +304,11 @@ $newconfig = get_config(); >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 c6c98d8..ba5b5e6 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 665d482..44bf19d 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 7d90cc3..acbd4c4 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -100,6 +100,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