Hier eine Beschreibung, wie die Migration bei mir geklappt hat
Ich übernehme jedoch keine Garantie, dass es in allen Fällen so funktioniert
Mit der Anleitung von Nextcloud hat es nicht funktioniert. Alleine schon die Tatsache, dass unterschiedliche Adminkonten (“ncadmin” vs “administrator” und “nc_admin” haute nicht hin. Mangels Anleitung wusste ich auch nicht, an welchen Stellen die config.php zu ändern war und das Erzeugen einer neuen Nextcloud-Datenbank - wie in den Anleitungen im Netz (Beispiel und bei Nextcloud) zu lesen war - ging mangels ausreichender Kenntnisse und fehlenden Hinweisen auf Benutzerkonto und Passwort kläglich in die Hose.
Mir war das ganze dann zu dumm und ich habe die UCS - VM wieder auf den Zustand vor dem Migrationsversuch zurück gesetzt.
Anschließend war erst einmal das obligatorische Backup aller betroffenen Rechner (Server, Clients) fällig. Besonders der Arbeitsplatzrechner sollte ein Komplett-backup erfahren, damit im Falle des Fehlschlagens ein Zurück auf den alten Nextcloud-Rechner ohne Datenverlust möglich ist!)
Danach bin ich wie folgt vorgegangen und habe nur die Dateien übertragen:
- auf UCS-Server den Dienst sshd gestartet
- auf Nextcloud (alt) mit
sudo -i
als root angemeldet - in das Verzeichnis /mnt/ncdata gewechselt (dort liegen bei meiner Installation die Benutzerdaten)
- Kopieren aller Benutzerdateien pro Benutzer
scp -rp <benutzerverzeichnis>/* root@<IP-Adresse des UCS-Servers>://var/lib/univention-appcenter/apps/nextcloud/data/nextcloud-data/<benutzerverzeichnis>
(-r = rekursiv, -p=preserve date/time) - auf UCS-server (neu) in das Nextcloud-Datenverzeichnis wechseln:
cd /var/lib/univention-appcenter/apps/nextcloud/data/nextcloud-data
chown -R www-data.www-data *
- Als nächstes die Nextcloud-Datenbank neu füllen durch Einlesen der Dateien. Hierzu stehen zwei Varianten zur Auswahl:
Variante 1:
Um in den Nextcloud-Docker zu gelangen, führt man den Befehl
docker ps
aus. Als Ausgabe erhält man z.B.:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7dc0142c037 docker.software-univention.de/nextcloud:15.0.8-0 "/bin/sh -c /usr/s..." 14 hours ago Up 14 hours 0.0.0.0:40000->80/tcp angry_sammet
- Die Container-ID benötigen wir im nächsten Schritt:
root@ucs:/# docker exec -it c7dc0142c037 /bin/bash
- Anschließend in das Nextcloud “Programmverzeichnis” wechseln:
root@nextc-29272196:/# cd /var/www/html/
- Mit dem Tool “occ” füllen wir die Datenbank mit den Dateieinträgen (ich habe es pro Benutzer durchgeführt):
sudo -u www-data php occ files:scan --path <benutzerverzeichnisname>
(ohne Pfadangabe)
Bei 18GB dauerte es in meiner VM knapp 1,5 Minuten. - Sicherheitshalber habe ich die Indizes neu erstellen lassen:
sudo -u www-data php occ db:add-missing-indices
Variante 2:
(danke an Moritz_Bunkus - siehe nächsten Beitrag)
-
univention-app shell nextcloud sudo -u www-data php /var/www/html/occ files:scan --path <benutzerverzeichnisname>
gefolgt von: univention-app shell nextcloud sudo -u www-data php /var/www/html/occ db:add-missing-indices
Danach geht es für beide Varianten ab hier weiter:
-
Anschließend über die Univention-Oberfläche Nextcloud aufrufen und als erst als Administrator anmelden.
-
Unter “Einstellungen”-“Grundeinstellungen” -“Dateibehandlung” die “Maximale Upload-Größe” heraufsetzen. Der Wert muss größer sein, als der größte importierte Ordner mit Inhalten.
Nach den Initial-Synchronisationen aller Endgeräte kann man den Wert wieder herabsetzen. -
In Nextcloud abmelden und als Benutzer anmelden.
Unter “Dateien” sollten hier jetzt alle importierten Dateien und Ordner sichtbar sein. -
Probehalber in verschiedene Unterordner wechseln und dabei beachten, dass nicht unter dem blauen Menübalken kurz “Sie haben keine Berechtigungen, Dateien hochzuladen” eingeblendet wird.
In diesem Fall noch einmal die Zugriffsrechte im Benutzerordner kontrollieren.
Dateien müssen die Berechtigung:
-rw-r--r-- 1 www-data www-data
und Ordner
drwxr-xr-x 4 www-data www-data
haben.
Passt alles, wird es jetzt spannend. Ich hatte mein Notebook mit Windows 10 das letzte Mal drei Tage vor der Migration (nur Dateien, keine Kalender und Kontakte) abgeglichen.
Jetzt wird das Notebook (in meinem Fall mit Windows 10) vom alten Nextcloud-Server auf Nextcloud auf den UCS-Server umgestellt.
-
Hierzu auf dem Arbeitsplatzrechner Nextcloud beenden.
In den Ordner C:\Benutzer<konto>\AppData\Roaming\Nextcloud wechseln (auf älteren Systemen kann es auch C:\Benutzer<konto>\AppData\Local\Nextcloud sein)
(Ordner “AppData” ist standardmäßig unsichtbar)
Die Datei Nextcloud.cfg mit dem Editor öffnen -
- Im Abschnitt “[General]” auf folgende Einstellung ändern:
useNewBigFolderSizeLimit=false
- Im Abschnitt “[General]” auf folgende Einstellung ändern:
-
- Im Abschnitt “[Accounts]” muss geändert werden:
0\url=https://nextcloud.alt.de
auf:
0\url=https://ucs.neue.domain/nextcloud
Muss auch ein Port angegeben werden, dann z.B.:
0\url=https://ucs.neue.domain:8443/nextcloud
- Im Abschnitt “[Accounts]” muss geändert werden:
-
- Darauf achten, dass
0\serverVersion=xx.y.z
mit den tatsächlichen Gegebenheiten übereinstimmt.
- Darauf achten, dass
-
Nextcloud.cfg speichern und Nexcloud auf dem Arbeitsplatzrechner starten.
-
Nach einer erforderlichen Neuanmeldung wurde die Synchronisation sofort gestartet.
Eventuell wird man gefragt, ob man die Dateien behalten oder löschen will - ich wählte “Dateien behalten” und daraufhin wurde die Synchronisierung nach Vergleichen der Dateien mit dem grünen Haken in der Anzeige erfolgreich beendet. Da der Datenbestand auf dem Arbeitsplatzrechner drei Tage alt war, wurden die Änderungen problemlos synchronisiert.
Auf meinem Laptop hat die Umstellung auf Anhieb geklappt.
Spannend wird es noch mit meinem Smartphone. Dort dürfte es vielleicht nicht so geschmeidig ablaufen.
Edit: Ging entspannter, als befürchtet.
Einfach in der Smartphone Nextxloud-App ein zweites Profil mit Login-Daten auf die UCS-Nextcloud-Instanz erzeugen und unter “Automatisches Hochladen” die gleichen Einstellungen vornehmen, wie im alten Profil.
Lediglich bei Kontakten und Kalendereinträgen - soweit sie in Nextcloud gespeichert sind - ist eine neue Zuweisung auf die neue Nextcloud-Installation vorzunehmen (Kontakte) bzw. die Kalendereinträge in den neuen Nexcloud-Kalender zu kopieren.
Dabei auch darauf achten, dass in der Smartphone-App der Synchronisationszeitraum von 90 Tage (default) auf einen längeren Zeitraum ändert, um alle benötigten Termine zu synchronisieren.
Auch die Migration weiterer Benutzer klappte in der o.a. Methode einwandfrei.
Noch ein Tipp:
sollte beim Hochladen neuer Dateien ein “HTTP-ERROR 403 … Forbidden (Sabre\DAV\Exception\Forbidden)” auftreten, erst überprüfen, ob die Dateiberechtigungen der Ordner auf “www-data.www-data” stehen. Ist dies der Fall, schafft ein erneuter Aufruf der Nextcloud-Instanz im docker und der Befehl
sudo -u www-data php occ files:scan --path <benutzerverzeichnisname>
(ohne Pfadangabe)
bzw.
univention-app shell nextcloud sudo -u www-data php /var/www/html/occ files:scan --path <benutzerverzeichnisname>
Abhilfe.