ei23 SmartHome Server – Backup&Restore oder Neuinstallation von Linux
Das Video (siehe oben) zeigt ausführlich, wie man von einem Linux-System, in diesem Fall dem ei23-SmartHome Server ein Backup erstellt und es nach einer anschließenden Neuinstallation wieder aufspielt.
Dies kann nötig sein, wenn ein System veraltet ist oder man durch Experimente, wie wir sie ja alle mal durchführen, nicht mehr korrekt funktioniert.
Vorallem Nextcloud bedarf ein paar spezieller Kniffe. Die Nötigen Befehle sind die folgenden:
# Backup Nextcloud docker exec -e MYSQL_PWD=MYSQLPASSWD nextcloud_db /usr/bin/mysqldump -u root --password=MYSQLROOTPASSWD nextcloud | gzip > /home/pi/nextcloud_db_backup.sql.gz # Rückeinspielen der Nextcloud Datenbank zcat nextcloud_db_backup.sql.gz | docker exec -i nextcloud_db mysql -u root --password=MYSQLROOTPASSWD nextcloud # Nutzerrechte wiederherstellen (z.B. wenn man die Daten vorher einkopiert hat) sudo chown -R www-data:www-data $HOME/ei23-docker/volumes/nextcloud/html/{apps,data}; sudo chmod -R 750 $HOME/ei23-docker/volumes/nextcloud/html/{apps,data} sudo chown -R www-data:www-data $HOME/ei23-docker/volumes/nextcloud/html; sudo chmod -R 750 $HOME/ei23-docker/volumes/nextcloud/html/{apps,data} sudo chown -R systemd-timesync:systemd-journal $HOME/ei23-docker/volumes/nextcloud/db # Neu einscannen der Dateien in Nextcloud docker exec -u www-data nextcloud php occ files:scan --all; # Möglicherweise ist ein Upgrade von Nextcloud nötig docker exec -u www-data nextcloud php occ upgrade # Sollte Nextcloud den Wartungsmodus nicht beenden wollen docker exec -u www-data nextcloud php occ maintenance:mode --off; # Oder man möchte manuell etwas reparieren lassen docker exec -u www-data nextcloud php occ maintenance:repair;
Zwischen Versionssprüngen von Nextcloud kann es zudem zu Problemen kommen.
Dazu muss man ggf. die Version von Nextcloud über die docker-compose.yml schrittweise raufsetzen
nextcloud: image: nextcloud:25.0 # Hier die Versionsnummer einfügen - findet man unter https://hub.docker.com/_/nextcloud/tags container_name: nextcloud # ....
Analog können Dockerbefehle für andere Container ausgeführt werden
# Einzelner Befehl docker exec containername echo hallo # Interaktiver Modus docker exec -it containername echo hallo