19 lines
694 B
Bash
Executable File
19 lines
694 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
destination="${1:-backups/postgres}"
|
|
retention_days="${BACKUP_RETENTION_DAYS:-30}"
|
|
minimum_copies="${BACKUP_MINIMUM_COPIES:-7}"
|
|
|
|
case "$destination" in ""|"/"|".") echo "Unsafe backup destination: $destination" >&2; exit 1;; esac
|
|
case "$retention_days:$minimum_copies" in *[!0-9:]*|:*|*:) echo "Retention values must be integers" >&2; exit 1;; esac
|
|
[ -d "$destination" ] || exit 0
|
|
|
|
count=0
|
|
find "$destination" -maxdepth 1 -type f -name 'mobilityops-*.dump' | sort -r | while IFS= read -r file; do
|
|
count=$((count + 1))
|
|
if [ "$count" -gt "$minimum_copies" ] && [ -n "$(find "$file" -mtime "+$retention_days" -print)" ]; then
|
|
rm -f -- "$file" "${file}.sha256"
|
|
fi
|
|
done
|