1
0
Fork 0
mirror of https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git synced 2024-12-27 06:42:00 +00:00
docker-adsb-ultrafeeder/rootfs/etc/s6-overlay/scripts/cleanup_globe_history
wiedehopf 58465dd35d
globe history pruning: be a bit more verbose (#116)
* globe history pruning: be a bit more verbose

also remove empty directories

* README: some location in webinterface hints
2024-07-24 07:28:43 -04:00

47 lines
2.3 KiB
Text
Executable file

#!/command/with-contenv bash
# shellcheck shell=bash disable=SC2015,SC2016,SC1091,SC2001,SC2154
#---------------------------------------------------------------------------------------------
# Script to remove Globe_History files older than xxx days - this to ensure that the disk
# doesn't fill up with (unwanted) history files)
# Copyright (C) 2023-2024, Ramon F. Kolb (kx1t) and contributors
# Core script copyright and provided by Matthias Wirth (wiedehopf), used with permission
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#---------------------------------------------------------------------------------------------
source /scripts/common
if [[ -z "$MAX_GLOBE_HISTORY" ]]; then
"${s6wrap[@]}" echo "MAX_GLOBE_HISTORY not set - we will not expire any globe_history files"
exec sleep infinity
fi
cutoffepoch="$(date -d"-${MAX_GLOBE_HISTORY} days" +%s)"
"${s6wrap[@]}" echo "Purging globe_history older than $MAX_GLOBE_HISTORY days (before $(date -d"-${MAX_GLOBE_HISTORY} days" +%d-%b-%Y))"
for dir in $(find /var/globe_history -maxdepth 3 -mindepth 3 -type d | grep -o -E -e '[0-9]{4}/[0-9]{2}/[0-9]{2}$'); do
if (( $(date -d "$dir" +%s) < cutoffepoch )); then
"${s6wrap[@]}" echo Removing "/var/globe_history/$dir"
rm -rf "/var/globe_history/$dir"
fi
done
# delete empty year / month directories
# make sure the directories haven't been touched for 3 days so freshly created directories aren't removed
# this will also delay deletion of empty parent directories by 3 days after their contents have been removed but that's fine
find /var/globe_history/ -mindepth 1 -maxdepth 2 -type d -empty -mtime +3 -delete
"${s6wrap[@]}" echo "Done - next purge will be in 24 hours"
exec sleep 24h