Nextcloud occ — Wartung und Verwaltung per Kommandozeile

Praxis-Guide zu Nextcloud occ — Wartung, Nutzer, Apps, Datenbank und Upgrades als Webserver-User per Kommandozeile verwalten.

occ ist das Administrations- und Wartungswerkzeug von Nextcloud – eine Kommandozeilen-Schnittstelle, mit der du deine Instanz steuerst, ohne den Umweg über die Weboberfläche. Weil occ als Webserver-User laufen muss, rufst du es typischerweise mit sudo -u www-data php occ <kommando> aus dem Nextcloud-Wurzelverzeichnis auf – andernfalls schreibt es Dateien mit falschen Rechten und bringt deine Installation durcheinander. Von Wartungsmodus und Upgrades über Nutzer-, Gruppen- und App-Verwaltung bis hin zu Datenbank-Reparaturen und LDAP deckt occ praktisch jede Admin-Aufgabe ab. Dieser Guide zeigt dir die wichtigsten Kommandos für den Alltag.

Grundlagen

sudo -u www-data php occ list — Listet alle verfügbaren occ-Kommandos auf. Aus dem Nextcloud-Wurzelverzeichnis ausführen.

sudo -u www-data php occ list

sudo -u www-data php occ help <command> — Zeigt Hilfe und alle Optionen zu einem bestimmten Kommando.

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

sudo -u www-data php occ status — Zeigt den Nextcloud-Status: Version, Installationszustand und Wartungsmodus.

sudo -u www-data php occ status

sudo -u www-data php occ -V — Zeigt die Nextcloud- und occ-Version.

sudo -u www-data php occ -V

sudo -u www-data php occ check — Führt eine grundlegende Systemprüfung durch (PHP-Version, Datenbank, geladene Module).

sudo -u www-data php occ check

occ in einem Docker-Container oder einer DDEV-Umgebung als Webserver-User ausführen.

# Docker / container:
docker exec -u www-data nextcloud php occ <command>
# DDEV:
ddev exec -u www-data php occ <command>

Wartungsmodus

sudo -u www-data php occ maintenance:mode --on — Aktiviert den Wartungsmodus. Alle Nutzer werden abgemeldet und die Seite zeigt eine Wartungsmeldung.

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

sudo -u www-data php occ maintenance:mode --off — Deaktiviert den Wartungsmodus und macht Nextcloud wieder erreichbar.

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

sudo -u www-data php occ maintenance:repair — Führt die Reparaturroutine aus: behebt Datenbank-Inkonsistenzen, fehlende Indizes und andere häufige Probleme.

sudo -u www-data php occ maintenance:repair

sudo -u www-data php occ maintenance:repair --include-expensive — Führt die Reparatur inklusive aufwendiger Operationen aus (z. B. Filecache-Bereinigung). Dauert länger, ist aber gründlicher.

sudo -u www-data php occ maintenance:repair --include-expensive

sudo -u www-data php occ maintenance:update:htaccess — Aktualisiert die .htaccess-Datei (nach Änderung des Datenverzeichnisses oder Verschieben der Installation ausführen).

sudo -u www-data php occ maintenance:update:htaccess

sudo -u www-data php occ maintenance:data-fingerprint — Aktualisiert den Daten-Fingerprint nach einer Wiederherstellung aus dem Backup. Verhindert Sync-Fehler bei Clients.

sudo -u www-data php occ maintenance:data-fingerprint

Baut die MIME-Typ-Datenbank neu auf und aktualisiert die JavaScript-MIME-Typ-Liste (nach Hinzufügen eigener MIME-Typen ausführen).

sudo -u www-data php occ maintenance:mimetype:update-db
sudo -u www-data php occ maintenance:mimetype:update-js

Upgrade und Updates

sudo -u www-data php occ upgrade — Führt das Nextcloud-Upgrade aus, nachdem der Code durch eine neuere Version ersetzt wurde. Führt DB-Migrationen und Reparaturen aus.

sudo -u www-data php occ upgrade

sudo -u www-data php occ update:check — Prüft, ob eine neue Nextcloud-Version verfügbar ist.

sudo -u www-data php occ update:check

Empfohlene Upgrade-Reihenfolge: Wartungsmodus aktivieren, Dateien ersetzen, Upgrade ausführen, Wartungsmodus deaktivieren.

sudo -u www-data php occ maintenance:mode --on
# Replace Nextcloud files here
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off

App-Verwaltung

sudo -u www-data php occ app:list — Listet alle installierten Apps mit Aktiviert-/Deaktiviert-Status und Version auf.

sudo -u www-data php occ app:list

sudo -u www-data php occ app:enable <appid> — Aktiviert eine installierte App.

sudo -u www-data php occ app:enable calendar

sudo -u www-data php occ app:disable <appid> — Deaktiviert eine App, ohne sie zu entfernen.

sudo -u www-data php occ app:disable activity

sudo -u www-data php occ app:install <appid> — Lädt eine App aus dem Nextcloud App Store herunter und installiert sie.

sudo -u www-data php occ app:install notes

sudo -u www-data php occ app:remove <appid> — Entfernt (deinstalliert) eine App vollständig.

sudo -u www-data php occ app:remove notes

sudo -u www-data php occ app:update <appid> — Aktualisiert eine bestimmte App auf die neueste Version.

sudo -u www-data php occ app:update calendar

sudo -u www-data php occ app:update --all — Aktualisiert alle installierten Apps auf einmal.

sudo -u www-data php occ app:update --all

sudo -u www-data php occ app:getpath <appid> — Zeigt den Dateisystempfad einer installierten App.

sudo -u www-data php occ app:getpath files_sharing

Nutzerverwaltung

sudo -u www-data php occ user:list — Listet alle Nutzer auf. Mit --output=json für maschinenlesbare Ausgabe.

sudo -u www-data php occ user:list

sudo -u www-data php occ user:info <uid> — Zeigt detaillierte Informationen zu einem bestimmten Nutzer (Anzeigename, E-Mail, Gruppen, Kontingent, Speicher).

sudo -u www-data php occ user:info alice

sudo -u www-data php occ user:add <uid> --display-name=<name> --group=<group> — Legt einen neuen Nutzer an. Du wirst nach einem Passwort gefragt, sofern nicht --password-from-env verwendet wird.

sudo -u www-data php occ user:add alice --display-name='Alice Liddell' --group=users

sudo -u www-data php occ user:delete <uid> — Löscht einen Nutzer und dessen Daten aus Nextcloud.

sudo -u www-data php occ user:delete alice

sudo -u www-data php occ user:resetpassword <uid> — Setzt das Passwort eines Nutzers zurück. Du wirst zur Eingabe des neuen Passworts aufgefordert.

sudo -u www-data php occ user:resetpassword alice

sudo -u www-data php occ user:disable <uid> — Deaktiviert ein Nutzerkonto (verhindert die Anmeldung, behält aber die Daten).

sudo -u www-data php occ user:disable alice

sudo -u www-data php occ user:enable <uid> — Reaktiviert ein zuvor deaktiviertes Nutzerkonto.

sudo -u www-data php occ user:enable alice

sudo -u www-data php occ user:setting <uid> <app> <key> <value> — Setzt eine nutzerspezifische Einstellung (z. B. Sprache, Kontingent). Ohne Wert wird die aktuelle Einstellung gelesen.

sudo -u www-data php occ user:setting alice core lang de

sudo -u www-data php occ user:report — Zeigt die Gesamtzahl der Nutzer inklusive LDAP- und SSO-Nutzer.

sudo -u www-data php occ user:report

Gruppenverwaltung

sudo -u www-data php occ group:list — Listet alle Gruppen auf.

sudo -u www-data php occ group:list

sudo -u www-data php occ group:info <group> — Zeigt alle Mitglieder einer Gruppe.

sudo -u www-data php occ group:info admin

sudo -u www-data php occ group:add <group> — Legt eine neue Gruppe an.

sudo -u www-data php occ group:add developers

sudo -u www-data php occ group:delete <group> — Löscht eine Gruppe (löscht nicht die enthaltenen Nutzer).

sudo -u www-data php occ group:delete developers

sudo -u www-data php occ group:adduser <group> <uid> — Fügt einen Nutzer zu einer Gruppe hinzu.

sudo -u www-data php occ group:adduser developers alice

sudo -u www-data php occ group:removeuser <group> <uid> — Entfernt einen Nutzer aus einer Gruppe.

sudo -u www-data php occ group:removeuser developers alice

Dateien scannen und aufräumen

sudo -u www-data php occ files:scan --all — Scannt die Dateien aller Nutzer und aktualisiert den Filecache. Nach direktem Hinzufügen von Dateien ins Datenverzeichnis ausführen.

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

sudo -u www-data php occ files:scan <uid> — Scannt nur die Dateien eines bestimmten Nutzers.

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

sudo -u www-data php occ files:scan --path=<uid>/files/<subdir> — Scannt ein bestimmtes Unterverzeichnis eines Nutzers.

sudo -u www-data php occ files:scan --path=alice/files/Photos

sudo -u www-data php occ files:cleanup — Bereinigt verwaiste Filecache-Einträge für nicht mehr existierenden Speicher.

sudo -u www-data php occ files:cleanup

sudo -u www-data php occ files:repair-tree — Repariert die Baumstruktur des Filecache (behebt Eltern-Kind-Beziehungen).

sudo -u www-data php occ files:repair-tree

sudo -u www-data php occ files:troubleshoot-transfer-ownership — Findet und behebt Probleme bei Eigentümer-Übertragungen von Dateien.

sudo -u www-data php occ files:troubleshoot-transfer-ownership

sudo -u www-data php occ files:transfer-ownership <source-uid> <dest-uid> — Überträgt alle Dateien und Freigaben von einem Nutzer auf einen anderen (z. B. beim Offboarding).

sudo -u www-data php occ files:transfer-ownership alice bob

sudo -u www-data php occ trashbin:cleanup --all-users — Leert den Papierkorb aller Nutzer.

sudo -u www-data php occ trashbin:cleanup --all-users

sudo -u www-data php occ trashbin:cleanup <uid> — Leert den Papierkorb eines bestimmten Nutzers.

sudo -u www-data php occ trashbin:cleanup alice

sudo -u www-data php occ versions:cleanup <uid> — Löscht alle gespeicherten Dateiversionen eines bestimmten Nutzers, um Speicherplatz freizugeben.

sudo -u www-data php occ versions:cleanup alice

Datenbank

sudo -u www-data php occ db:add-missing-indices — Fügt fehlende Datenbank-Indizes hinzu. Verbessert die Performance erheblich. Kann gefahrlos im laufenden Betrieb ausgeführt werden.

sudo -u www-data php occ db:add-missing-indices

sudo -u www-data php occ db:add-missing-primary-keys — Fügt fehlende Primärschlüssel zu Datenbanktabellen hinzu. Für einige Upgrades erforderlich.

sudo -u www-data php occ db:add-missing-primary-keys

sudo -u www-data php occ db:add-missing-columns — Fügt fehlende Spalten hinzu, die in neueren Nextcloud-Versionen eingeführt wurden.

sudo -u www-data php occ db:add-missing-columns

sudo -u www-data php occ db:convert-filecache-bigint — Konvertiert Filecache-IDs zu bigint. Erforderlich für große Instanzen (>4 Milliarden Dateien). Dauert eine Weile.

sudo -u www-data php occ db:convert-filecache-bigint

sudo -u www-data php occ db:convert-type --all-apps <type> <user> <host> <db> — Migriert die Nextcloud-Datenbank auf einen anderen Datenbanktyp (z. B. SQLite zu MySQL/PostgreSQL).

sudo -u www-data php occ db:convert-type mysql ncuser localhost nextcloud

Hintergrundjobs

sudo -u www-data php occ background:cron — Setzt den Ausführungsmodus für Hintergrundjobs auf System-Cron (empfohlen).

sudo -u www-data php occ background:cron

sudo -u www-data php occ background:webcron — Setzt Hintergrundjobs auf Webcron (ein externer Dienst ruft /cron.php auf).

sudo -u www-data php occ background:webcron

sudo -u www-data php occ background:ajax — Setzt Hintergrundjobs auf AJAX (durch Seitenaufrufe ausgelöst). Nicht für den Produktivbetrieb geeignet.

sudo -u www-data php occ background:ajax

sudo -u www-data php occ background:job:execute <job-id> — Führt einen bestimmten Hintergrundjob anhand seiner ID manuell aus.

sudo -u www-data php occ background:job:execute 42

sudo -u www-data php occ background:job:list — Listet alle registrierten Hintergrundjobs mit letztem Ausführungszeitpunkt und Status auf.

sudo -u www-data php occ background:job:list

Cron-Eintrag, um die Nextcloud-Hintergrundjobs alle 5 Minuten auszuführen. In /etc/crontab oder crontab -u www-data eintragen.

# Recommended crontab entry (run as root or www-data):
*/5 * * * * www-data php /var/www/html/nextcloud/cron.php

Konfiguration

sudo -u www-data php occ config:list — Listet alle System- und App-Konfigurationswerte auf. Passwörter werden maskiert.

sudo -u www-data php occ config:list

sudo -u www-data php occ config:list system — Listet nur die Systemkonfiguration auf (entspricht dem Inhalt von config.php).

sudo -u www-data php occ config:list system

sudo -u www-data php occ config:system:get <key> — Liest den Wert eines Systemkonfigurations-Schlüssels.

sudo -u www-data php occ config:system:get version

sudo -u www-data php occ config:system:set <key> --value=<value> — Setzt einen Systemkonfigurationswert. Schreibt direkt in config/config.php.

sudo -u www-data php occ config:system:set default_language --value=de

sudo -u www-data php occ config:system:set <key> --type=boolean --value=true — Setzt einen booleschen Systemkonfigurationswert. Typen: string (Standard), boolean, integer, double.

sudo -u www-data php occ config:system:set maintenance --type=boolean --value=true

sudo -u www-data php occ config:system:delete <key> — Löscht einen Systemkonfigurations-Schlüssel aus config.php.

sudo -u www-data php occ config:system:delete trusted_domains 1

Setzt die vertrauenswürdigen Domains (erlaubte Hostnamen). Array-Index 0, 1, 2 … für mehrere Domains verwenden.

sudo -u www-data php occ config:system:set trusted_domains 0 --value=localhost
sudo -u www-data php occ config:system:set trusted_domains 1 --value=nextcloud.example.com

sudo -u www-data php occ config:app:get <appid> <key> — Liest einen app-spezifischen Konfigurationswert.

sudo -u www-data php occ config:app:get mail smtp_host

sudo -u www-data php occ config:app:set <appid> <key> --value=<value> — Setzt einen app-spezifischen Konfigurationswert.

sudo -u www-data php occ config:app:set mail smtp_host --value=smtp.example.com

Sicherheit und Verschlüsselung

sudo -u www-data php occ security:certificates — Listet alle importierten vertrauenswürdigen SSL-Wurzelzertifikate auf.

sudo -u www-data php occ security:certificates

sudo -u www-data php occ security:certificates:import <path> — Importiert ein eigenes CA-Zertifikat, um ihm für ausgehende Verbindungen zu vertrauen (z. B. LDAP, SMTP).

sudo -u www-data php occ security:certificates:import /tmp/my-ca.crt

sudo -u www-data php occ security:certificates:remove <filename> — Entfernt ein zuvor importiertes CA-Zertifikat.

sudo -u www-data php occ security:certificates:remove my-ca.crt

sudo -u www-data php occ encryption:status — Zeigt, ob die serverseitige Verschlüsselung aktiviert ist und welches Verschlüsselungsmodul aktiv ist.

sudo -u www-data php occ encryption:status

sudo -u www-data php occ encryption:enable — Aktiviert die serverseitige Verschlüsselung. Nutzer müssen sich danach anmelden, damit ihre Dateien verschlüsselt werden.

sudo -u www-data php occ encryption:enable

sudo -u www-data php occ encryption:disable — Deaktiviert die serverseitige Verschlüsselung. Alle Dateien müssen zuvor entschlüsselt werden.

sudo -u www-data php occ encryption:disable

sudo -u www-data php occ twofactorauth:enforce --on — Erzwingt die Zwei-Faktor-Authentifizierung für alle Nutzer.

sudo -u www-data php occ twofactorauth:enforce --on

sudo -u www-data php occ twofactorauth:disable <uid> <provider> — Deaktiviert einen bestimmten 2FA-Anbieter für einen Nutzer (z. B. um ein ausgesperrtes Konto wiederherzustellen).

sudo -u www-data php occ twofactorauth:disable alice totp

Protokollierung

sudo -u www-data php occ log:manage — Zeigt das aktuelle Log-Level und die Log-Backend-Konfiguration.

sudo -u www-data php occ log:manage

sudo -u www-data php occ log:manage --level=<level> — Setzt das Log-Level. Stufen: debug (0), info (1), warning (2), error (3), fatal (4).

sudo -u www-data php occ log:manage --level=warning

sudo -u www-data php occ log:manage --backend=file — Setzt das Log-Backend. Optionen: file (Standard), syslog, errorlog, systemd.

sudo -u www-data php occ log:manage --backend=syslog

sudo -u www-data php occ log:tail — Zeigt das Nextcloud-Logfile in Echtzeit (erfordert das Log-Backend 'file').

sudo -u www-data php occ log:tail

sudo -u www-data php occ log:tail --lines=50 — Zeigt die letzten 50 Zeilen aus dem Nextcloud-Log.

sudo -u www-data php occ log:tail --lines=50

Freigaben und Föderation

sudo -u www-data php occ sharing:cleanup-remote-storages — Bereinigt verwaiste Remote-Freigaben (Überreste föderierter Freigaben nach Löschung eines Nutzers).

sudo -u www-data php occ sharing:cleanup-remote-storages

sudo -u www-data php occ config:app:set core shareapi_enabled --value=yes — Aktiviert die Freigabe-API (erlaubt Nutzern das Teilen von Dateien).

sudo -u www-data php occ config:app:set core shareapi_enabled --value=yes

sudo -u www-data php occ config:app:set core shareapi_allow_links --value=no — Deaktiviert öffentliche Link-Freigaben für alle Nutzer.

sudo -u www-data php occ config:app:set core shareapi_allow_links --value=no

LDAP / Active Directory

sudo -u www-data php occ ldap:show-config — Zeigt die aktuelle LDAP-Konfiguration (Verbindung, Base-DN, Filter).

sudo -u www-data php occ ldap:show-config

sudo -u www-data php occ ldap:test-config <config-id> — Testet die LDAP-Verbindung für ein bestimmtes Konfigurations-Präfix (z. B. s01).

sudo -u www-data php occ ldap:test-config s01

sudo -u www-data php occ ldap:search --group '' --limit=10 — Sucht nach LDAP-Gruppen (leerer String liefert alle, begrenzt auf 10).

sudo -u www-data php occ ldap:search --group '' --limit=10

sudo -u www-data php occ ldap:check-user <uid> — Prüft, ob ein LDAP-Nutzer noch existiert und im Verzeichnis aktiv ist.

sudo -u www-data php occ ldap:check-user alice

sudo -u www-data php occ ldap:reset-cache — Leert den LDAP-Cache, um beim nächsten Zugriff frische Abfragen zu erzwingen.

sudo -u www-data php occ ldap:reset-cache

sudo -u www-data php occ user:sync 'OCA\User_LDAP\User_Proxy' -m remove — Synchronisiert LDAP-Nutzer: entfernt Nextcloud-Konten für Nutzer, die nicht mehr in LDAP sind. Optionen: -m remove, disable oder ask.

sudo -u www-data php occ user:sync 'OCA\User_LDAP\User_Proxy' -m disable

Fazit

occ ist das Schweizer Taschenmesser der Nextcloud-Administration – fast alles, was sich in der Weboberfläche einstellen lässt (und vieles, das nur hier geht), erledigst du damit schnell und skriptbar. Achte konsequent darauf, occ als korrekten Webserver-User auszuführen (sudo -u www-data php occ …); ein versehentlicher Aufruf als root setzt Dateirechte falsch und kann die Instanz lahmlegen. Vor Upgrades und größeren Eingriffen aktivierst du den Wartungsmodus (maintenance:mode --on), und vor db:*, maintenance:repair oder dem Zurücksetzen von Passwörtern (user:resetpassword) legst du ein Backup von Datenbank und config/config.php an – config:system:set schreibt direkt in die Konfiguration. So bleibt occ ein mächtiges, aber sicheres Werkzeug.

Verwandte Kommandos

  • artisan – Kommandozeilen-Werkzeug des Laravel-Frameworks (PHP)
  • cargo – Paketmanager und Build-Tool für Rust
  • composer – Abhängigkeits-Manager für PHP