45 lines
1.1 KiB
Django/Jinja
45 lines
1.1 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
TARGET_DIR="/local_testdata/test-destination"
|
|
|
|
THRESHOLD=60
|
|
TARGET_USAGE=50
|
|
|
|
SLEEP_INTERVAL=2
|
|
DELETE_BATCH=200
|
|
SAFE_MINUTES=5
|
|
|
|
echo "[$(date)] Blackhole Monitor gestartet für $TARGET_DIR"
|
|
|
|
while true; do
|
|
|
|
CURRENT_USAGE=$(df -P "$TARGET_DIR" | awk 'NR==2 {print $5}' | tr -d '%')
|
|
|
|
if (( CURRENT_USAGE > THRESHOLD )); then
|
|
echo "[$(date)] Disk usage ${CURRENT_USAGE}% -> starte Cleanup"
|
|
|
|
while (( CURRENT_USAGE > TARGET_USAGE )); do
|
|
|
|
find "$TARGET_DIR" \
|
|
-type f \
|
|
-mmin +$SAFE_MINUTES \
|
|
-print0 \
|
|
| head -z -n $DELETE_BATCH \
|
|
| xargs -0 -r rm -f
|
|
|
|
CURRENT_USAGE=$(df -P "$TARGET_DIR" | awk 'NR==2 {print $5}' | tr -d '%')
|
|
|
|
echo "[$(date)] aktuelle Auslastung: ${CURRENT_USAGE}%"
|
|
|
|
if ! find "$TARGET_DIR" -type f -mmin +$SAFE_MINUTES | head -n 1 | grep -q .; then
|
|
echo "[$(date)] Keine alten Dateien mehr zum Löschen"
|
|
break
|
|
fi
|
|
|
|
done
|
|
|
|
echo "[$(date)] Cleanup beendet"
|
|
fi
|
|
|
|
sleep "$SLEEP_INTERVAL"
|
|
done
|