ei23 SmartHome Server – Backup&Restore oder Neuinstallation von Linux

7. Juni 2023

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

Kommentare sind geschlossen.