Seite 1 von 1

Wie Kopiere ich die Userdata mit Samba (Win10) auf SD karte

Verfasst: 18. Apr 2024 13:20
von leupy
Hallo,
Ich versuche die Userdata von einer Datensicherung wieder auf meine SD Karte mittels Samba zu schreiben.
Ich bekomme immer die Fehlermeldung das ich keine Berechtigung habe.
Wie kann ich mir die Berechtigung geben ? Oder wie bekomme ich die Daten auf die SD karte ?

Re: Wie Kopiere ich die Userdata mit Samba (Win10) auf SD karte

Verfasst: 18. Apr 2024 19:47
von udo1toni
Ich gehe mal von einem Raspberry Pi mit openHABian Image aus, dann musst Du bei Samba als User openhabian angemeldet sein, um schreiben zu dürfen.
Samba ist aber weder der richtige Weg, um "zu Fuß" Datensicherungen vorzunehmen noch um diese wieder einzuspielen.
openHAB bringt unter GNU/Linux dazu ein Tool mit, welches man über die Shell ausführen kann.

Code: Alles auswählen

sudo openhab-cli backup
erzeugt ein zip-Archiv aller relevanten Datenpfade von openHAB und legt dies (ohne Angabe eines Dateinamens) unterhalb $OPENHAB_USERDATA/backups/ ab. Da das Backup mit erweiterten Rechten ausgeführt wird, gehört das Archiv anschließend dem User root. Das bedeutet, Du kannst das Archiv zwar über Samba kopieren, aber nicht verschieben (sollte man immer im Hinterkopf haben).
Zum Einspielen eines solchen Backups legst Du die gewünschte zip-Datei einfach "irgendwo" auf dem Pi ab, gewöhnlich im home-Verzeichnis des Users, der angemeldet ist (also meist /home/openhabian/) und führst dann den Restore aus:

Code: Alles auswählen

sudo systemctl stop openhab.service # falls openHAB noch laufen sollte
sudo openhab-cli restore ./dateiname_des_backups.zip # -/ -> das aktuelle Verzeichnis
sudo openhab-cli reset-ownership # sorgt dafür, dass alle Rechte auf Dateien und Pfade stimmen
sudo openhab-cli clean-cache # löscht den Cache, danach braucht openHAB beim Starten länger, dafür ist alles geordnet
sudo systemctl start openhab.service
Du musst nur einen Bruchteil der Dateien unterhalb $OPENHAB_USERDATA/ tatsächlich aus dem Backup wiederherstellen, meist reicht es, ./etc/ und ./jsondb/ (ohne Unterordner .jsondb/backup/) zurückzuspielen.

Re: Wie Kopiere ich die Userdata mit Samba (Win10) auf SD karte

Verfasst: 19. Apr 2024 08:55
von leupy
Hallo, das mit der Daten Sicherung kenne Ich und mache das auch So. (nur halt zu selten :-(( )
Mir ist die SD karte defekt gegangen und ich konnte aber noch die Userdata und Config auf meine Rechner kopieren.
Jetzt bekomme ich die nicht über Samab auf das Laufende SD gespielt die leider nicht aktuell ist.
Wie setze ich mir bei Samba die rechte oder wie Melde ich mich an als User damit ich die daten kopieren darf ?

Re: Wie Kopiere ich die Userdata mit Samba (Win10) auf SD karte

Verfasst: 19. Apr 2024 18:29
von udo1toni
Na, Du musst beim Verbinden mit dem Share als Username openhabian und als Passwort ebenfalls openhabian angeben.
Falls Du das - aus welchen Gründen auch immer - nicht hinbekommst, wäre die einfachste Lösung, WinSCP zu verwenden.
Schritt 1: Du installierst WinSCP
Schritt 2: Du richtest eine Verbindung zum Pi ein. Verbindungsart: ssh (Port 22), User und Passwort nach Deinene Wünschen, der User muss halt auf dem Pi existieren.
Schritt 3: Du kopierst die Daten mittels WinSCP ins home-Verzeichnis des angemeldeten Users (dorthin darfst Du auf jeden Fall schreiben)
Schritt 4: Du verbindest Dich per ssh mit dem Pi
Schritt 5: Du verschiebst die Dateien mittels

Code: Alles auswählen

sudo mv /home/meinusername/ordnerMitZuKopierendenDaten $OPENHAB_USERDATA/
Natürlich immer vorausgesetzt, die Daten liegen in der richtigen Struktur vor :)
Schritt 6: Du führst den Befehl

Code: Alles auswählen

sudo openhab-cli reset-ownership
aus.
WinSCP bietet auch die Option, direkt eine Shell zu öffnen, damit könntest Du also Schritt 4 aus WinSCP heraus ausführen.

Was die (zukünftig hoffentlich häufigeren) Backups betrifft: Man kann da einfach mit einem kleinen Script automatisieren. Das Script ruft den Backup-Befehl auf und verschiebt evtl. das Archiv auch automatisch an einen sicheren Ort. Das Script selbst wird über crontab automatisch gestartet, z.B. täglich um 2:17 Uhr (hat keine Bedeutung, nur irgendeine Uhrzeit), oder auch mehrfach täglich, ganz nach Deinem Geschmack. Ein Backup ohne Persistence ist ca. 10 MByte groß, mit Persistence sind es dann vielleicht 120 MByte (kommt natürlich sehr auf das System an, aber so als Richtschnur), wenn Du ein externes System hast, auf welches Du die Backups automatisch auslagern kannst, kannst Du dort auch gleich noch ein Script einrichten, welches dafür sorgt, dass nur die letzten x Backups aufgehoben werden. Mit einer Automatik vergisst man das leidige Thema, ohne es später zu bereuen...