Nextcloud enthält bereits alle notwendigen Komponenten, um gelöschte Dateien automatisch zu bereinigen, sodass die meisten Administratoren kein eigenes Shell-Skript benötigen. Laut der aktuellen Dokumentation zur Nextcloud-Administration (Version 35) wird weiterhin empfohlen, eine definierte Aufbewahrungsrichtlinie für den Papierkorb mit einer zuverlässigen Ausführung von Hintergrundprozessen zu kombinieren. Wichtig ist, dass die Standardrichtlinie autonicht bedeutet, alles nach genau 30 Tagen zu löschen. Gelöschte Elemente werden mindestens 30 Tage lang aufbewahrt und können erst dann bereinigt werden, wenn Speicherplatz benötigt wird.
Wenn Sie eine vorhersehbare Bereinigung anstreben, legen Sie ein explizites maximales Aufbewahrungsalter fest und stellen Sie sicher, dass Nextcloud-Hintergrundprozesse über den System-Cronjob ausgeführt werden. Die folgenden Schritte beschreiben ausschließlich das von Nextcloud dokumentierte Verhalten und erläutern, wann die Befehle `npm install` occ trashbin:expireund `npm trashbin:cleanupinstall` angebracht sind.
Was die automatische Mülleimerreinigung tatsächlich bewirkt
Wenn die App „Gelöschte Dateien“ ( files_trashbin) aktiviert ist, werden von Nutzern entfernte Dateien in den Papierkorb verschoben, anstatt sofort gelöscht zu werden. Dadurch haben Nutzer ein Zeitfenster zur Wiederherstellung, allerdings belegen diese gelöschten Elemente weiterhin Speicherplatz. Nextcloud steuert deren Speicherdauer über die entsprechende trashbin_retention_obligationEinstellung in den Einstellungen config/config.php.
Die aktuelle Nextcloud-Dokumentation zur Konfiguration des Papierkorbs definiert folgende Richtlinienformen:
| Einstellung | Bedeutung | Passt gut |
auto | Bewahren Sie die Gegenstände mindestens 30 Tage lang auf; danach können Sie geeignete Gegenstände entfernen, wenn Platz benötigt wird. | Kleine Installationen, die mit dem Standardverhalten zufrieden sind. |
D, auto | Bewahren Sie die Gegenstände mindestens D Tage lang auf und räumen Sie dann je nach Platzangebot auf. | Sie benötigen ein minimales Wiederherstellungszeitraum, aber keine feste Löschfrist. |
auto, D | Garantierte Löschung nach D Tagen, gleichzeitig aber auch Möglichkeit einer früheren, speicherplatzabhängigen Bereinigung. | Sie wünschen sich eine maximale Aufbewahrungsdauer, können aber bei Speichermangel eine frühere Löschung tolerieren. |
D1, D2 | Bewahren Sie Elemente mindestens D1 Tage lang auf und löschen Sie sie, wenn die Aufbewahrungsdauer D2 Tage überschreitet. | Sie benötigen sowohl eine minimale Erholungszeit als auch ein festes maximales Aufbewahrungsalter. |
disabled | Automatischen Papierkorbablauf deaktivieren. | Nur dann, wenn die unbefristete Aufbewahrung beabsichtigt ist und das Speicherwachstum auf andere Weise gesteuert wird. |
Eine weitere Speicherregel ist zu beachten: Wird das Speicherkontingent eines Benutzers aufgrund gelöschter Dateien überschritten, kann Nextcloud die Aufbewahrungseinstellung ignorieren und den Papierkorb so lange leeren, bis die Kontingentvorgaben erfüllt sind. Daher sollte die Aufbewahrung nicht als unveränderliche Backup-Garantie betrachtet werden.
Schritt 1: Wählen Sie eine Aufbewahrungsrichtlinie, bevor Sie irgendetwas ändern.
Legen Sie fest, welchen Zweck der Papierkorb in Ihrer Umgebung erfüllt. Wenn Benutzer häufig versehentlich gelöschte Dateien wiederherstellen, geben Sie ihnen ein sinnvolles Mindestfenster. Wenn Ihre Priorität auf begrenztem Speicherplatz oder einer dokumentierten Datenaufbewahrungsrichtlinie liegt, definieren Sie auch ein Höchstfenster.
Diese Einstellung ermöglicht beispielsweise eine speicherbasierte Bereinigung zu jedem Zeitpunkt, garantiert aber gleichzeitig, dass Dateien, die älter als 30 Tage sind, entfernt werden:
'trashbin_retention_obligation' => 'auto, 30',
Wenn gelöschte Dateien mindestens 30 Tage lang aufbewahrt und nach 30 Tagen endgültig entfernt werden sollen, verwenden Sie stattdessen eine begrenzte Richtlinie:
'trashbin_retention_obligation' => '30, 30',
Wählen Sie Werte, die Ihren Wiederherstellungsanforderungen entsprechen. Ein kürzerer Zeitraum spart zwar kurzfristig Speicherplatz, verkürzt aber die Zeit, die Benutzern für die Wiederherstellung von Dateien zur Verfügung steht. Ein längerer Zeitraum bietet mehr Wiederherstellungszeit, kann aber die Festplattennutzung erhöhen.
Schritt 2: Legen Sie trashbin_retention_obligation in config.php fest.
Öffnen Sie die Nextcloud-Konfigurationsdatei, die sich normalerweise config/config.phpim Installationsverzeichnis befindet. Fügen Sie die gewünschte Einstellung innerhalb des $CONFIGArrays hinzu oder ändern Sie sie. Ein typisches Beispiel ist:
<?php
$CONFIG = array (
// Other Nextcloud settings...
'trashbin_retention_obligation' => 'auto, 30',
);
Bearbeiten Sie keine Werte, die nicht damit zusammenhängen, und achten Sie darauf, den Inhalt von Tickets oder Screenshots nicht offenzulegen, config.phpda er sensible Serverkonfigurationen enthalten könnte.
Alternativ können Sie die effektive Konfiguration auch über die Befehlszeilentools von Nextcloud überprüfen, anstatt den Dateiinhalt in eine Fehlermeldung zu kopieren.
Schritt 3: Verwenden Sie Systemcron für zuverlässige Hintergrundprozesse
Die Aufbewahrungsrichtlinie ist nur dann hilfreich, wenn Nextcloud-Hintergrundprozesse tatsächlich ausgeführt werden. Die Dokumentation zu Nextcloud-Hintergrundprozessen empfiehlt für Produktionsumgebungen die Verwendung von Cronjobs des Betriebssystems. AJAX ist der Standardmodus, hängt jedoch von Seitenaufrufen ab und ist daher die unzuverlässigste Option.
Bei einer typischen Linux-Installation mit dem www-dataWebserver-Konto bearbeiten Sie die Crontab dieses Kontos:
crontab -u www-data -e
Führen Sie dann Nextcloud cron.phpalle fünf Minuten aus:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Ersetzen Sie dies /var/www/nextclouddurch den tatsächlichen Pfad zu Ihrer Installation. Einige Systeme benötigen den vollständigen Pfad zur PHP-CLI, z. B. /usr/bin/php.
Sie können den Cron-Modus auch explizit auswählen mit:
sudo -E -u www-data php /var/www/nextcloud/occ background:cron
Nextcloud dokumentiert, dass der Hintergrundprozess zum Leeren des Papierkorbs alle 30 Minuten ausgeführt wird. Ein Aufruf cron.phpalle fünf Minuten bedeutet nicht, dass der Papierkorb alle fünf Minuten geleert wird; es bedeutet, dass der Scheduler häufig Gelegenheit erhält, fällige Aufgaben auszuführen.
Schritt 4: Überprüfen Sie, ob der Scheduler funktioniert
Nach der Konfiguration von cron sollte zunächst der Eintrag im Betriebssystem überprüft werden:
crontab -u www-data -l
Überprüfen Sie anschließend in den Nextcloud-Administrationseinstellungen den Status der Hintergrundprozesse. Die Seite sollte anzeigen, dass kürzlich Prozesse ausgeführt wurden. Falls die angezeigte letzte Ausführungszeit immer älter wird, korrigieren Sie den Cronjob, bevor Sie die Aufbewahrungsrichtlinie überprüfen.
In Nextcloud 35 occenthalten die dokumentierten Befehle auch Befehle zur Überprüfung von Hintergrundprozessen, wie z. B. background-job:list` background-job` background-job:running, `background-job` und `background-job` background-job:history. Diese sind hilfreich, wenn Sie überprüfen müssen, ob Prozesse tatsächlich ausgeführt werden, anstatt lediglich anzunehmen, dass Cron aktiv ist.
Schritt 5: Verwenden Sie trashbin:expire für richtlinienbasierte manuelle Ausführungen
Wenn Sie eine benutzerdefinierte Aufbewahrungsfrist konfiguriert haben, können Sie diese Richtlinie manuell anwenden mit:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:expire
Die aktuelle Dokumentation der Nextcloud-Befehle für Dateien und Papierkorb weist auf eine wichtige Einschränkung hin: trashbin:expireEine manuelle Ablaufzeit wird nur dann durchgeführt, wenn eine benutzerdefinierte Aufbewahrungsfrist konfiguriert ist. Bei der Standardrichtlinie autobeendet sich der Befehl mit einer Informationsmeldung und hat keine weitere Auswirkung, da die automatische Ablaufzeit vom Hintergrundprozess übernommen wird.
Falls Sie bewusst einen separaten System-Cron-Eintrag für die trashbin:expirePapierkorb-Ablauffunktion benötigen, dokumentiert Nextcloud eine Möglichkeit, den integrierten Hintergrundjob der App zum Löschen von Papierkörben zuerst zu deaktivieren:
sudo -E -u www-data php /var/www/nextcloud/occ config:app:set --value=no files_trashbin background_job_expire_trash
Anschließend können Sie die Termine selbst festlegen. Dies ist eine erweiterte Option. Für die meisten Installationen ist es einfacher und wartungsfreundlicher occ trashbin:expire --quiet, den integrierten Ablaufplan aktiviert zu lassen und den normalen Zeitplaner von Nextcloud zu verwenden .cron.php
Verwechseln Sie nicht trashbin:expire mit trashbin:cleanup.
Die Namen sind ähnlich, aber die Befehle haben ganz unterschiedliche Auswirkungen. trashbin:expireEntfernt Elemente, die der konfigurierten Aufbewahrungsrichtlinie entsprechen. trashbin:cleanupLöscht den Papierkorbinhalt der angegebenen Benutzer endgültig.
Zum Beispiel:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:cleanup --all-users
Dies ist ein destruktiver, alle Benutzer umfassender Löschvorgang. Er ist nützlich, wenn Sie den Papierkorb jedes Benutzers gezielt leeren müssen, aber in der Regel nicht der richtige Befehl für die routinemäßige, auf Aufbewahrung basierende Automatisierung, da er das von Ihnen festgelegte Wiederherstellungsfenster ignoriert. Fügen Sie einen solchen Befehl nicht in Ihren Cronjob ein, es sei denn, eine dauerhafte und bedingungslose Löschung ist tatsächlich Ihre Richtlinie.
Schritt 6: Papierkorbgröße in Nextcloud 35 prüfen und anpassen
Die aktuelle Nextcloud 35-Befehlsdokumentation enthält trashbin:sizedie Option `--require`, mit der Administratoren die Zielgröße des Papierkorbs global oder pro Benutzer überprüfen oder festlegen können. So zeigen Sie den aktuellen globalen Wert an:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size
So zeigen Sie das effektive Ziel eines bestimmten Benutzers an:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size --user USER_ID
Eine konfigurierte Zielgröße kann die altersbasierte Aufbewahrung ergänzen, wenn die Speicherkapazität im Vordergrund steht. Nextcloud weist darauf hin, dass eine Änderung der globalen Standardgröße die sofortige Bereinigung vorhandener Papierkörbe auslöst. Behandeln Sie Größenänderungen daher als operative Maßnahme und nicht nur als harmlose Anzeigeeinstellung.
Woran man erkennt, ob die automatische Bereinigung funktioniert
- Der Status der Hintergrundprozesse zeigt die letzten Ausführungen an.
- Die Crontab des Betriebssystems enthält den erwarteten
cron.phpEintrag.
- Ihre Konfiguration
trashbin_retention_obligationentspricht der von Ihnen beabsichtigten Richtlinie.
- Alte Müllgegenstände verschwinden schließlich gemäß der konfigurierten maximalen Lebensdauer, sofern eine solche existiert.
trashbin:expireVerhält sich wie dokumentiert, wenn eine benutzerdefinierte Richtlinie konfiguriert ist.
- Die Festplatten- oder Kontingentnutzung steigt nicht mehr unerwartet an, da veraltete, gelöschte Dateien nicht mehr unbegrenzt aufbewahrt werden.
Falls alte Dateien länger als erwartet erhalten bleiben, prüfen Sie zunächst, ob Ihre Richtlinie tatsächlich einen Maximalwert enthält. Die Standardeinstellung autogarantiert keine Löschung exakt nach 30 Tagen. Überprüfen Sie anschließend die Hintergrundprozesse. Erst nach diesen Prüfungen sollten Sie Berechtigungen, Speichersysteme oder Anwendungsprotokolle untersuchen.
Eine praktische Konfiguration für die meisten selbstgehosteten Server
Für eine typische selbstgehostete Instanz empfiehlt es sich, zunächst alle fünf Minuten einen Cronjob einzurichten und ein explizites maximales Papierkorb-Verfallsdatum festzulegen. 'auto, 30'Dies ermöglicht Benutzern unter normalen Bedingungen beispielsweise einen Papierkorb-Verfallsdatum von bis zu einem Monat und stellt gleichzeitig sicher, dass Elemente nicht unbegrenzt im Papierkorb verbleiben. Sollten Benutzer unabhängig von der Speicherauslastung stets das vollständige Wiederherstellungsfenster benötigen, empfiehlt sich stattdessen eine Richtlinie mit begrenzten Minimal- und Maximalwerten '30, 30'.
Bewahren Sie Backups getrennt vom Papierkorb auf. Der Papierkorb ist eine Benutzerwiederherstellungsfunktion mit Quoten- und Aufbewahrungsrichtlinien; er ersetzt keine eigenständige Backup-Strategie.
Offizielle Nextcloud-Referenzen