Oldal kiválasztása

Már egy ideje használom a nextcloudot, ismerkedem vele. A minap megpróbáltam webdaval felmountolni, egy másik felhasználó alól egy megosztott mappát egy másik linux alatt, hogy milyen jó lesz majd oda pakolni a mentéseinket stb. Az elképzelés első körben jó volt, de maga a webdav sok apró fájlnál nagyon lassú, nem érdemes használni. A másik, ami pedig ezt a problémát előhozta, hogy kb. egy 15gbs backup átmásolása után valahogy megszakadt a kapcsolat és zárolva maradt a fájl. A webes felület napló fájljaiból a következő hiba üzenet jelent meg. Kicsit utána jártam a témának, hogy mi is okozza ezt. Lényegében az adatbázisban maradt egy fájl zárolva, ennek a megoldásáról is lentebb lehet olvasni. Magát a lockolást ki is lehet kapcsolni a config.php-ben de én ezt nem akarom, mert a másokkal megosztott fájlokat nem lenne jó ötlet, ha egyszerre ketten is tudnánk pl. szerkeszteni.

OCA\DAV\Connector\Sabre\Exception\FileLocked: „Egyfile.tgz” is locked

  1. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php – line 179: OCA\DAV\Connector\Sabre\File->delete()
  2. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php – line 287: Sabre\DAV\Tree->delete(‘files/wolfi/Bac…’)
  3. [internal function] Sabre\DAV\CorePlugin->httpDelete(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
  4. /data/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php – line 105: call_user_func_array(Array, Array)
  5. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php – line 479: Sabre\Event\EventEmitter->emit(‘method DELETE’, Array)
  6. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php – line 254: Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
  7. /data/nextcloud/apps/dav/lib/Server.php – line 283: Sabre\DAV\Server->exec()
  8. /data/nextcloud/apps/dav/appinfo/v2/remote.php – line 35: OCA\DAV\Server->exec()
  9. /data/nextcloud/remote.php – line 164: require_once(‘/data/nextcloud…’)
  10. {main}

Megoldás elsőnek a kliensnél umount -l -f /mnt/valami segítségével szépen lecsatoltam a csatolási pontot, majd visszamentem a felhőre.

Karbantartás mód bekapcsolása.

sudo -u www-data php occ maintenance:mode --on

mysql -u root -p
use nextcloud;
DELETE FROM oc_file_locks WHERE 1;
exit

Konzolból futtatva a következő parancsokat a nextcloud adatbázisában kitöröltem az összes fájl zárolást, utána már sikeresen ki tudtam törölni a problémás fájlt.

Ha valaki ebbe belefutna, nagyjából ennyi a teendő, továbbá még érdemes a nextcloud konzoljával egy fájl checket is csinálni.

Fájlok újra szkennelése.

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

Karbantartás mód kikapcsolása.

sudo -u www-data php /data/nextcloud/occ maintenance:mode --off
Források:
https://docs.nextcloud.com/server/9/admin_manual/configuration_server/occ_command.html
https://help.nextcloud.com/t/file-is-locked-how-to-unlock/1883/8