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.
-
+
- If different than 0 (keep all), defines the maximum number of files to be kept for each species, with priority give to files with highest confidence.
- This value does not take into account the last 7 days (protected by default).
+ If different than 0 (keep all), defines the number of files to keep for each species, with priority given to files with higher confidence. This value does not include files from the last 7 days, these new files are protected against auto-deletion.
Note only the spectrogram and audio files are deleted, the obsevation data remains in the database.
The files protected through the "lock" icon are also not affected.
+
+
diff --git a/scripts/disk_species_count.sh b/scripts/disk_species_count.sh
new file mode 100755
index 0000000..2f15a7d
--- /dev/null
+++ b/scripts/disk_species_count.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+# Get default values
+source /etc/birdnet/birdnet.conf
+base_dir="$(readlink -f "$HOME/BirdSongs/Extracted/By_Date")"
+cd "$base_dir" || exit 1
+
+# Function to format numbers to k if ≥1000
+format_k() {
+ local value=$1
+ if [ "$value" -ge 1000 ]; then
+ awk -v v="$value" 'BEGIN { printf "%.1fk", v/1000 }'
+ else
+ echo "$value"
+ fi
+}
+
+# Get bird names from the database
+bird_names=$(sqlite3 -readonly "$HOME"/BirdNET-Pi/scripts/birds.db </dev/null | wc -l)
+ total_file_count=$((total_file_count + total))
+
+ # Format total
+ total_display=$(format_k "$total")
+
+ # Clean species name for display
+ species_display=$(echo "$species" | tr '_' ' ')
+
+ # Save padded sort key + display line
+ printf "%05d %s : %s\n" "$total" "$total_display" "$species_display" >> "$data_file"
+done <<<"$sanitized_names"
+
+# Avoid TERM error if not running in a terminal
+[ -t 1 ] && clear
+
+# Build final output
+{
+ echo "BirdSongs stored on your drive"
+ echo " "
+ echo "Location : $base_dir: "
+ echo "Free space : $(df -h "$base_dir" | awk 'NR==2 {print $4}' | sed 's/G/ GB/; s/M/ MB/; s/K/ KB/')"
+ echo "Total species : $species_count"
+ echo "Total files : $(format_k "$total_file_count")"
+ echo "Total size : $(du -sh . | sed 's/G/ GB/; s/M/ MB/; s/K/ KB/' | cut -f1)"
+ echo " "
+ sort -r "$data_file" | sed 's/^[0-9]* //'
+} > "$output_file"
+
+# Show results
+cat "$output_file"
+
+# Clean up
+rm -f "$data_file" "$output_file"