Dateien lassen sich nicht löschen

Ich bin in NEXTCLOUD und möchte ein komplettes Verzeichnis mit Unterordnern, das ich mit meinem Computer synchronisiert hatte, löschen. Die Syncronisierung mit dem Nextcloud Client ist entfernt. Nun bleiben in der Cloud einige Verzeichnisse und Dateien stehen, die sich nicht löschen lassen.

Was mache ich falsch?

Hier die Fehlermeldung:
Fatal webdav Exception: {“Message”:“HTTP/1.1 423 “02 16 Rundschreiben/Info zu 02 16 Rundschreiben/Michael/FKS” is locked”,“Exception”:“OCA\DAV\Connector\Sabre\Exception\FileLocked”,“Code”:0,“Trace”:"#0 /mnt/webu/b2/10/56783510/htdocs/download/3rdparty/sabre/dav/lib/DAV/Tree.php(179): OCA\DAV\Connector\Sabre\Directory->delete()\n#1 /mnt/webu/b2/10/56783510/htdocs/download/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(285): Sabre\DAV\Tree->delete(‘02 16 Rundschre
’)\n#2 [internal function]: Sabre\DAV\CorePlugin->httpDelete(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))\n#3 /mnt/webu/b2/10/56783510/htdocs/download/3rdparty/sabre/event/lib/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#4 /mnt/webu/b2/10/56783510/htdocs/download/3rdparty/sabre/dav/lib/DAV/Server.php(459): Sabre\Event\EventEmitter->emit(‘method:DELETE’, Array)\n#5 /mnt/webu/b2/10/56783510/htdocs/download/3rdparty/sabre/dav/lib/DAV/Server.php(248): Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))\n#6 /mnt/webu/b2/10/56783510/htdocs/download/apps/dav/appinfo/v1/webdav.php(60): Sabre\DAV\Server->exec()\n#7 /mnt/webu/b2/10/56783510/htdocs/download/remote.php(165): require_once(’/mnt/webu/b2/10
’)\n#8 {main}",“File”:"/mnt/webu/b2/10/56783510/htdocs/download/apps/dav/lib/Connector/Sabre/Directory.php",“Line”:284,“User”:“peter”}

Hier steht was von “is locked”. Ist das bereits die ErklĂ€rung?

In so einem Fall kann man versuchen den “locked” Status aus der Datenbank fĂŒr die Datei zu entfernen. NC “merkt” sich welche Datei(en) gerade bearbeitet werden (bzw auf welche zugegriffen wird) und sperrt sie fĂŒr kurze Zeit fĂŒr anderweitige Dateioperationen. So werden beispielsweise Dateien nicht verschoben, die gerade synchronisiert werden, oder Ă€hnliches.

Den “locked” Status kann man entfernen, indem man:
DELETE FROM oc_file_locks WHERE 1
in der Datenbank ausfĂŒhrt. Danach wĂŒrde ich wieder versuchen die betreffenden Dateien/Ordner zu löschen.

Entschuldige, bevor du die locker entfernst, solltest du dein Dateisystem erst noch einmal von Nextcloud selbst ĂŒberprĂŒfen lassen:

sudo -u www-data php occ files:scan --all

im Ordner der NC Installation ausfĂŒhren, lĂ€sst NC das Dateisystem neu Einscannen. Vielleicht sind die Ordner gar nicht mehr “physisch” vorhanden, sondern nur noch als Dateileichen in der Datenbank aufgelistet. Sollte dies der Fall sein, löst das neu scannen der Bibliothek dein Problem.

2 Likes

mmh, an diesem statement habe ich auch herumgebastelt.

Hintergrund: meine Datenbank: mariadb
Die Beschreibung ist etwas arg cryptisch!

In meinem Fall musste ich folgende statements auf dem NC-Server absetzen:

dbuser, dbname, dbpassword findest Du in /var/www/nextcloud/config/config.php

mysql -u dbuser -p
dbpassword
use dbname;

zunĂ€chst mal schauen ob es ĂŒberhaupt locks gibt:

select * from oc_file_locks where oc_file_locks.lock != 0;

Danach kann der lock dann mit

delete from oc_file_locks where oc_file_locks.lock !=0;

gelöscht werden.

Soweit die Details zur Anweisung DELETE FROM oc_file_locks WHERE 1, die meiner Meinung nach nicht korrekt ist, falls es sich um SQL-Syntax handeln sollte.

Auf der anderen Seite blieben mir noch folgende Fragen:

  1. Ich habe auch Dateien mit den lock-Werten 3 und -1 gesehen, die auch entsprechende Fehler im Server Lock erzeugt haben. Was hat es mit den Werten auf sich, wann darf gelöscht werden, wann nicht?
  2. Offentsichtlich gibt es fĂŒr jede Datei in der Nextcloud einen Eintrag mit Wert 0 in oc_file_locks. WĂ€re es da nicht korrekt den lock-Wert auf 0 zu setzen statt die Zeile zu löschen?
  3. Der Server sollte in den Maintenance Mode gesetzt oder gestoppt werden bevor man das SQL-Statements ausfĂŒhrt??
3 Likes

Und wie mache ich als ganz unbedarfter User von NEXTCLOUD der nicht weis wo er welche Datenbank mit welchem SQL Statement durchsuchen muss nun weiter? Bei allen Verzeichnissen, die ich löschen möchte bleiben ein oder zwei Dateien stehen, so dass es nun etwas unĂŒbersichtlich wird.

Danke fĂŒr den Post.

Vorher mit =1 probiert hat alles nicht geholfen, Dateien hatten den Wert -1, hat super geklappt!

Ich klinke mich mal ein, ich habe nĂ€mlich auch Dateien/Ordner, die sich nicht löschen lassen. Meine NextCloud lĂ€uft auf einer virtuellen Maschine im Rahmen eines Hostingpakets eine großen, deutschen Webspaceproviders. Ich habe also nur beschrĂ€nkt Zugriff. Zum Beispiel konnte ich den Befehl ‘sudo -u www-data php occ files:scan --all’ nur abgewandelt ausfĂŒhren als php occ files:scan --all. Die darauf folgende Fehlermeldung ist:

X-Powered-By: PHP/4.4.9
Content-type: text/html


Fatal error: main() [function.require]: Failed opening required '__DIR__/console.php' (include_path='.:/usr/lib/php4.4') in /homepages/XXX/htdocs/nextcloud/occ on line 11

Auch die Suche nach den blockierten Dateien/Ordnern ist mir noch nicht ganz klar. Soll ich die DatenbankeintrÀge mit dem Parameter 0 behandeln oder die mit 1? Die Abfrage mit 0 bringt keine EintrÀge. Die Abfrage mit 1 bringt 25 EintrÀge, aber in der Spalte lock ist stehts »0« eingetragen:

He, ich glaube es nicht: Ich konnte jetzt alle Ordner einfah so löschen. Dabei habe ich nichts gemacht, keine Updates, die Befehle (s.o.) meldeten Fehler.

Hallo zusammen,

ich habe das gleiche Problem, kann aber mit den Antworten nichts anfangen, da ich nicht mal weiß wie ich an die Datenbank komme geschweige dort etwas Ă€ndern kann. Ich verstehe nur Bahnhof. :slightly_frowning_face:

vg
Marie

Über phpmyadmin bspw
 Bist du bei einem Shared Webhoster ist das in der Regel vorinstalliert.
Weitere Infos ĂŒber deinen Server bzw. Provider wĂ€ren fĂŒr uns dann hilfreich

ich bin hier:

Bin mir aber momentan nicht so sicher, ob das eine gute Wahl war.

Ab “Drive Basic” hast du Zugriff auf ein “Admin Panel”. Suche dort mal nach “Datenbank”, “Datenbank verwalten” oder “phpmyadmin”.

Ich kann leider nichts in die Richtung finden :frowning:

Das ist auch nicht das Panel, welches ich meinte.
Evtl. mĂŒsstest du einmal den Support dort bemĂŒhen.

Sorry, aber das habe ich auch nicht geschafft, ich brauchte einen Datenbank Spezi der mir das gemacht hat. Also ohne Support wĂŒrde ich sagen geht das nicht.

Erst einmal geht es darum, zu finden, wo sie den Datenbankzugriff erreicht. Ihren Provider kenne ich leider nicht aus eigener Anschauuung.

Das ist mir schon klar, aber auch den habe ich alleine nicht gefunden, besser, ich habe ihn gefunden aber die Datenbank nicht. Deswegen gebe ich dir recht, ohne den Support zu bemĂŒhen klappt das unter UmstĂ€nden nicht.