ReadMe.md created by AI
Der Code wird bereitgestellt "as-is". Es wird keinerlei Gewährleistung gegeben. Weder auf korrekte Funktion, noch auf Schäden, welche durch die Nutzung entstehen. Es wird davon abgeraten, den Code in produktiven Systemen zu verwenden!
Ein PowerShell‑Script zur Wiederherstellung gelöschter Nextcloud‑Dateien oder Ordner aus der Trashbin‑Struktur über Datenbank‑ und Dateisystemabgleich auf einem Linux Server.
Erzeugt die laufzeit Funktion "restore-ncfile".
Innerhalb der Funktion muss ein Wert vor Benutzung angepasst werden:
$ncBaseDir = "[put Nextcloud base dir in here]" #eg: "/var/www/nextcloud"
restore-ncfile stellt gelöschte Dateien oder Ordner eines Nextcloud‑Benutzers wieder her, indem es:
- die Nextcloud‑Datenbank (
oc_files_trash) nach passenden Einträgen durchsucht - die zugehörigen Trashbin‑Objekte im Dateisystem lokalisiert
- Dateien oder Ordner an ihren ursprünglichen Speicherort zurückverschiebt
- optional vorhandene Dateien überschreibt
- die Datenbankeinträge entfernt
- Dateirechte korrigiert
- einen gezielten
occ files:scanfür den betroffenen Pfad ausführt - mit
-whatifeinen vollständigen Simulationsmodus bietet
Das Script ist ideal für Administratoren, die gezielt einzelne Dateien oder ganze Objektgruppen wiederherstellen möchten, ohne manuell im Trashbin suchen zu müssen.
- Wiederherstellung von Dateien und Ordnern
- Filterung nach:
- Benutzer (
-ncUser) - Zeitfenster (
-DateAfter,-DateBefore) - Ursprungs‑Pfad (
-location, Regex) - Dateiname (
-itemName, Regex)
- Benutzer (
- Sicheres Regex‑Handling (Escape + Validierung)
- Optionales Überschreiben existierender Dateien/Ordner (
-force) - Optionales Wiederherstellen in ein alternatives Verzeichnis
- Vollständiger Simulationsmodus (
-whatif) - Automatische Bereinigung der Datenbank
- Automatische Rechtekorrektur (
chown) - Automatischer OCC‑Rescan für den betroffenen Pfad
- Ausführliche Debug‑Ausgabe über
-Verbose
- PowerShell (Core oder Windows PowerShell)
- Nextcloud‑Server mit Zugriff auf:
- Nextcloud‑Datenverzeichnis
- Nextcloud‑Datenbank
- PowerShell‑Modul SimplySQL
- Ausreichende Rechte für:
- Dateisystemzugriffe
chownsudo -u www-data php occ …
| Parameter | Pflicht | Beschreibung |
|---|---|---|
-ncUser |
✔️ | Nextcloud‑Benutzer, dessen gelöschte Dateien/Ordner wiederhergestellt werden sollen |
-DateAfter |
❌ | Untere Zeitgrenze (Standard: jetzt − 2 Tage) |
-DateBefore |
❌ | Obere Zeitgrenze (Standard: jetzt) |
-location |
❌ | Regex für ursprünglichen Pfad (Standard: .*) |
-itemName |
❌ | Regex für Dateinamen (Standard: .*) |
-RestoreLocation |
❌ | Altertnativer Verzeichnisname in den die Daten wiederhergetellt werden |
-force |
❌ | Überschreibt existierende Dateien/Ordner |
-whatif |
❌ | Simuliert alle Aktionen ohne Änderungen |
restore-ncfile -ncUser alice -itemName "bericht.pdf"restore-ncfile -ncUser bob -location "Documents/Projekte"restore-ncfile -ncUser alice -DateAfter "2024-01-01" -DateBefore "2024-01-03"restore-ncfile -ncUser alice -itemName "scan_.*" -forcerestore-ncfile -ncUser alice -location "Fotos" -whatifrestore-ncfile -ncUser alice -location "Fotos" -RestoreLocation "INC123456-Restore"- Einlesen der Nextcloud Konfiguration
- Verbindung zur Nextcloud‑Datenbank
- SQL‑Abfrage der passenden Trash‑Einträge
- Zuordnung zu den Dateien im Trashbin‑Dateisystem
- Validierung:
- Datei/Ordner existiert
- Regex gültig
- Wiederherstellung:
- Zielpfad erzeugen
- Datei/Ordner verschieben
- Optional überschreiben
- Bei echtem Lauf (
-whatifnicht gesetzt):- DB‑Eintrag löschen
- Rechte korrigieren
- OCC‑Rescan für den betroffenen Pfad
- Das Script setzt voraus, dass Trashbin‑Objekte dem Muster
id.d<timestamp>folgen. -whatifverhindert alle Änderungen an DB, Dateisystem und OCC.- Das Script arbeitet ausschließlich serverseitig.
Pull Requests, Bug Reports und Feature‑Vorschläge sind willkommen.
GNU General Public License (GPL)