2.9 KiB
2.9 KiB
Kutt Links Cleanup
Bash-Script zum automatischen Aufräumen anonymer Links in einer selbst gehosteten Kutt-Instanz.
🏰 Website · 📰 Community · 🐘 Mastodon · 💬 Support
Was macht das Script?
Anonyme Links (ohne Account erstellt) werden gelöscht, wenn sie beispielhaft seit 365 Tagen nicht mehr aufgerufen wurden. Als Referenzdatum gilt:
- Der letzte Aufruf (letzter Eintrag in der
visits-Tabelle) - Falls der Link nie aufgerufen wurde: das Erstelldatum
Links von eingeloggten Usern werden nie angefasst.
Voraussetzungen
- Kutt läuft als Docker-Setup mit einem PostgreSQL-Container namens
kutt-db - Der ausführende User hat Zugriff auf
docker exec
Installation
1. Script ablegen
mkdir -p /home/docker-projekte/kutt/scripts
cp kutt-links-cleanup.sh /home/docker-projekte/kutt/scripts/
chmod +x /home/docker-projekte/kutt/scripts/kutt-links-cleanup.sh
2. Cronjob einrichten
Täglich um 03:00 Uhr ausführen:
crontab -e
Folgende Zeile hinzufügen:
0 3 * * * /home/docker-projekte/kutt/scripts/kutt-links-cleanup.sh >> /home/docker-projekte/kutt/scripts/cleanup.log 2>&1
Verwendung
Dry Run (nur anzeigen, nichts löschen)
./kutt-links-cleanup.sh --dry-run
Zeigt alle Links an, die gelöscht werden würden — ohne etwas zu verändern.
Ausführen (Links löschen)
./kutt-links-cleanup.sh
Log prüfen
cat /home/docker-projekte/kutt/scripts/cleanup.log
Konfiguration
Die Variablen stehen am Anfang des Scripts:
| Variable | Standard | Beschreibung |
|---|---|---|
CONTAINER |
kutt-db |
Name des PostgreSQL-Containers |
DB_USER |
kutt |
Datenbank-Benutzer |
DB_NAME |
kutt |
Datenbank-Name |
MAX_AGE_DAYS |
365 |
Tage ohne Zugriff bis zur Löschung |
Technische Details
- Gelöschte Links sind sofort aus der Kutt-Oberfläche verschwunden
- Zugehörige Visit-Statistiken werden automatisch mitgelöscht (
ON DELETE CASCADE) - Kutt nutzt Redis nur für Rate-Limiting, nicht als Link-Cache — es gibt kein Cache-Problem nach dem Löschen
- Die freigewordenen Short-Link-Adressen können danach wieder vergeben werden
© Patrick Asmus · Techniverse Network · Lizenz