Skip to main content

Nextcloud Befehle CLI und DB

Interaktiv in der Console

docker exec -it -u 33 nextcloud-app-1 /bin/bash
# im container dann zb sowas ausführen:
php occ files:scan --all
# nur Dateien eines bestimmten Users scannen:
php occ files:scan pl-admin

image.png

Autoakzeptieren von Gruppenfreigaben bei neu angelegten Usern

image.png

Problem

https://github.com/nextcloud/server/issues/19520
https://github.com/nextcloud/server/issues/18958

Neu angelegte User müssen zuerst Freigaben im Ordner 'Ausstehende Freigaben' akzeptieren, die mit ihrer Gruppe geteilt sind, bevor die freigegebenen Ordner unter ‘Alle Dateien‘ angezeigt werden.

Erhoffte Lösung: zwei Environment Flags

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#sharing-enable-share-accept

  • sharing.enable_share_accept false

  • sharing.force_share_accept false

Leider keine änderung

DB Workaround

https://github.com/nextcloud/server/issues/19520#issuecomment-2210405574

Man kann die PostgreSQL Tabelle 'oc_share' so abändern, dass der DEFAULT Wert in der Spalte 'accepted' immer 1 ist und nicht 0:

# interaktiv mit DB-Container verbinden
docker exec -it nextcloud-db-1 /bin/bash


# mit PostgreSQL DB verbinden
psql -U nextcloud nextcloud
# oder bei nextcloud-aio manual-install (dbname, dbuser und dbpassword in config/config.php nachsehen)
psql -U oc_nextcloud -d nextcloud_database


# Für Nextcloud OIDC_user_backend App
# alle bisherigen accepted=0 in =1 ändern:
UPDATE oc_share SET accepted = 1 WHERE accepted = 0;


# Für dauerhaft autoaccept (geht nicht bei Nextcloud OIDC_user_backend App)
# Default von Spalte accepted ändern (bisherige accepted=0 bleiben unverändert)
ALTER TABLE oc_share ALTER COLUMN accepted SET DEFAULT 1;


# weitere Befehle zum Browsen:
# alle Tabellen anzeigen
\dt
# Tabelleninfos anzeigen
\d oc_share
# oc_share anzeigen
SELECT * FROM oc_share;

Alte Shares löschen

php occ sharing:delete-orphan-shares
# oder
php occ sharing:delete-orphan-shares -f

Quelle: https://help.nextcloud.com/t/delete-a-zombie-share/110900/5 

Activities einer bestimmten File-ID anzeigen

# in postgresql docker-container:
psql usw siehe oben
SELECT * FROM oc_activity WHERE object_type = 'files' AND object_id = 'DEINE_FILE_ID' ORDER BY timestamp DESC;

image.png

Gruppen-IDs anzeigen

# in postgresql container bashen
docker exec -it nextcloud-db-1 /bin/bash


# in postgresql-db mit nextcloud einloggen
psql -U nextcloud nextcloud
# bzw. für nextcloud-aio manual-install container:
psql -U oc_nextcloud -d nextcloud_database


# oc_groups anzeigen
SELECT * FROM oc_groups;

image.png

Oder über occ und dann die ID der Benutzer abgleichen und Gruppenbezeichnungen raten:

docker exec -it -u 33 nextcloud-app-1 /bin/bash
php occ group:list

image.png

groupfolders:scan


  • occ groupfolders:create <name> → create a group folder
  • occ groupfolders:delete <folder_id> [-f|--force] → delete a group folder and all its contents
  • occ groupfolders:expire → trigger file version expiration (see Nextcloud docs for details)
  • occ groupfolders:group <folder_id> <group_name> [-d|--delete] [write|share|delete] → assign groups and their rights to a group folder
  • occ groupfolders:list → list configured group folders
  • occ groupfolders:permissions → configure advanced permissions (see below for details)
  • occ groupfolders:quota <folder_id> [<quota>|unlimited] → set a quota for a group folder
  • occ groupfolders:rename <folder_id> <name> → rename a group folder
  • occ groupfolders:scan <folder_id> → trigger a filescan for a group folder

Quelle: https://help.nextcloud.com/t/solved-occ-file-scan-not-working-for-groupfolder/94017 

Troubleshooting

Fehlermeldung beim Befehl files:scan --all

... "file.pdf" will not be accessible due to incompatible encoding ...

image.png

Lösung: https://github.com/nextcloud/server/issues/3136#issuecomment-579470343 

apt update
apt install convmv
# Entweder direkt ohne Test oder --notest weglassen um Vorgang zu testen
convmv -f utf-8 -t utf-8 -r --notest --nfc <nextcloud-data-folder>

via Portainer

https://www.reddit.com/r/NextCloud/comments/croxkm/how_to_use_occ_scan_on_a_docker_install/

https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/occ_command.html#using-the-occ-command

zuerst in den Docker container gehen (zb Portainer oder über Konsole) und folgendes Kommando testen:

php occ maintenance:mode --on

image.png 

image.png

evtl kommt folgende Fehlermeldung:

root@1dfd70a49980:/var/www/html# php occ maintenance:mode --on
Console has to be executed with the user that owns the file config/config.php
Current user id: 0
Owner id of config.php: 33
Try adding 'sudo -u #33' to the beginning of the command (without the single quotes)
If running with 'docker exec' try adding the option '-u 33' to the docker command (without the single quotes)

danach die Konsole des Containers nochmal starten, diesmal mit dem vorgeschlagenen Nutzer (user id 33 in meinem Fall, wie in der Ausgabe vorgeschlagen):

image.png

und dann

./occ maintenance:mode --on

oder wenn man kein portainer nutzt:

docker exec container_name sudo -u 33 php7 /var/www/html/occ files:scan --all

image.png

WICHTIG

auf den Ordner achten. Auszug aus dem reddit post (siehe oben)

With something like this, the path to occ is important. It's either under /config/www/nextcloud or /var/www/html.
Also, if you see occ but you can't run commands like so - occ files:scan <user> then ./occ files:scan <user> can sometimes fix it.