Backup zu Cloud-Diensten.

Begonnen von yogiflop, 18 März 2014, 09:47:43

Vorheriges Thema - Nächstes Thema

yogiflop

Hallo,

ich habe da eine Idee, leider fehlt mir da aber der Ansatz das in Linux umzusetzen.

Plan:
Ich würde gerne täglich um 2 Uhr morgens einmal die gesammte Config des FHEM als eigentlich /opt/fhem packen und wegsichern in eine Cloud.
Dabei sollten die alten Backups nicht überschrieben werden, sondern täglich im Format "yyyymmdd-bemerkung" gespeichert werden.
Zur Verfügung stehen Hidrive, Googledrive, iCloud.
Die Configdaten der Speicher würde ich in einer Datei übergeben wollen.

Ich weiß nicht, ob es soetwas schon gibt, habe zumindest nichts gefunden. Des Weiteren wäre natürlich auch wichtig und interessant, wie ich das Verzeichnis nach einem neuen Aufsetzen des Raspi wiederherstellen kann.

würde mich über Anregungen freuen

Gruß Marc

CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

betateilchen

Zuerst, solltest Du überlegen, was genau Du sichern willst, jeden Tag das komplette /opt/fhem macht nicht sonderlich viel Sinn.

Die Konfiguration steckt entweder in einer Konfigurationsdatei fhem.cfg (ggf. noch einige includes) oder einer Konfigurationsdatenbank.
Die Logfiles stehen in /opt/fhem/log oder in einer Logdatenbank.
Die gplot-Dateien stehen in /opt/fhem/www/gplot (falls Du selbst welche angelegt/geändert hast)
Ggf hast Du noch eine /opt/fhem/FHEM/99_myUtils.pm mit eigenen Unterprogrammen

Alles andere ist doch fhem Standard, den Du jederzeit neu aufsetzen kannst. Dann musst Du nur die o.g. gesicherten Dateien an ihre ursprünglichen Plätze zurückkopieren und alles sollte laufen wie vorher.

Bei mir läuft so ein Job jede Nacht um 1, allerdings nicht auf einen Cloud-Anbieter, sondern auf einen eigenen Server. Aber bei einer Cloudanbindung sollte das nicht anders funktionieren. Ich weiss, z.B. dass Dropbox sowas unterstützt, indem man sich dort einen API Key holt, den man einfach in ein Shell-Skript mit einbaut.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yogiflop

Da hast du recht, theoretisch bräuchten nur die sich ändernden Dateien gesichert werden.

ob ich jetzt einen eigenen Server anspreche oder einen Clouddienst, dürfte ja nur von der Art der Übertragung und der Kennwortabfrage abhängen. Ich weiß, das z.b. HiDrive rsync unterstützt. Bei den anderen Diensten müsste ich mich mal schlau machen.
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

betateilchen

Hidrive mit rsync ist simpel, Du kannst Hidrive auch einfach per mount ins Filesystem einhängen und direkt kopieren.

Dropbox läßt sich auch als Laufwerk mounten: http://boghdan.net/how-to-mount-dropbox-on-debian-linux-server-shell/

Ähnlich auch für Google: http://monkeyiq.blogspot.de/2013/07/gdrive-mounting-released.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yogiflop

Das klingt sehr gut, aber wie müsste ich das Script realisieren ??

wie würde so ein Script aussehen und was müsste ich in die Crontab eintragen ?
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

betateilchen

#5
Ich kann Dir heute abend mein Skript posten, wenn ich zu Hause bin.

Alternativ kannst Du Dir auch mal die Datei 98_backup.pm in fhem anschauen, da wird im Prinzip ähnliches gemacht, da wird ein gezipptes TAR erstellt, das die Datum/Zeit-Information im Namen trägt.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yogiflop

Zitat von: betateilchen am 18 März 2014, 11:01:08
Ich kann Dir heute abend mein Skript posten, wenn ich zu Hause bin.


Das wäre super, dann kann ich mich da mal einarbeiten (wenn ich zuhause bin)
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

strauch

Und ich dachte der Vorteil von FHEM wäre, das die Daten nicht in "BigData" landen, wäre vielleicht die Überlegung Wert die Daten zu packen und mit einem Passwort zu versehen?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

betateilchen

tja - ich würde meine Daten auch nicht in eine Cloud ablegen. Aber es geht ja hier im Thread mehr um das "wie" und nicht um das "wohin".
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

strauch

Ja deshalb mein Einwand mit dem Passwortschutz bzw. mit einer Verschlüsselung der Backupdatei. Zumindest in meinen FHEM Daten tauchen auch durchaus Passwörter auf. z.B. für meine XBMC Steuerung.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

yogiflop

Zitat von: strauch am 18 März 2014, 12:24:28
Und ich dachte der Vorteil von FHEM wäre, das die Daten nicht in "BigData" landen, wäre vielleicht die Überlegung Wert die Daten zu packen und mit einem Passwort zu versehen?

Es ist ja eigentlich auch nicht von FHEM aus gesehen, sondern eigentlich nur die Sicherung irgendwelcher Daten von der BS-Ebene ;-)
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

yogiflop

Zitat von: betateilchen am 18 März 2014, 11:01:08
Ich kann Dir heute abend mein Skript posten, wenn ich zu Hause bin.



Denkst du bitte noch daran ......
und deine watchdog-konfiguration würde mich ebenfalls interessieren.

Danke dir jetzt schon einmal

Marc
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

betateilchen

*grmpf* vergessen...

Die watchdog-Konfiguration steht schon irgendwo hier im Forum, das andere kann ich frühestens Sonntagabend nachreichen, wenn ich wieder zu Hause bin.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yogiflop

Zitat von: betateilchen am 20 März 2014, 19:45:26
*grmpf* vergessen...

Die watchdog-Konfiguration steht schon irgendwo hier im Forum, das andere kann ich frühestens Sonntagabend nachreichen, wenn ich wieder zu Hause bin.

ich hatte einen Teil der watchdog konfiguration gefunden .... nun kann ich den RPi neu aufsetzen, da er in einer Endlosschleife ist. Glücklicherweise hatte ich noch eine zweite Karte die ein paar Tage älter war.  Obwohl ich nur auf das fhem.save File geprüft habe ... aber irgendwas wollte da wohl nicht. Bei dem Befehl $ sudo cat > ....... habe ich auch eine Fehlermeldung vom System bekommen.
Eine Idee, wie ich die Endlosschleife unterbrechen kann ??

Das mit dem Script wäre dennoch cool ;-)

Danke

Marc
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

betateilchen

die SD-Karte in einem anderen Linuxrechner mounten und die /etc/watchdog.conf bearbeiten
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wuppi68

hmmmm,

da es ja auch alles "nur" Text Dateien sind, liesse sich nicht auch ein SVN als Backup Medium cool benutzen? Dort sollten doch nur die Diffs gespeichert werden ...
1 mal im Monat einen Branch und dann 29 Diffs

my 2 cents

Ralf
FHEM unter Proxmox als VM

betateilchen

Zitat von: betateilchen am 20 März 2014, 19:45:26
*grmpf* vergessen...

ich denk noch dran, hoffentlich schaff ich es heute abend ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

geschafft... hier kommt der gigantische Zweizeiler  8)



backname=`date "+fhem-backup-%Y%m%d-%H%M.tar.gz"`
tar -czvf $backname /opt/fhem /opt/fhem_add /opt/scripts



In der Zeile mit dem tar Befehl wird einfach angegeben, was alles in das tar gepackt werden soll. Das kannst Du natürlich anpassen wie Du möchtest, da kannst Du einzelne Dateien oder Unterverzeichnisse angeben.

Anschließend musst Du die Datei einfach nur noch hinkopieren wo auch immer Du möchtest.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

Kleiner Tip:

es gibt nette Backupprogramm wie dirvish, rsnapshot die auf Unix-Dateisystemen mit Hilfe von Symlinks nette kleine Incs bauen. Speziel wegen Backupplatz eine interessante Idee zum ansehen. läuft bei Mir seit c.a. 2 jahren (dirvish)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

ja, aber darum ging es hier nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

AHA1805

Zitat von: Wernieman am 25 März 2014, 08:31:59
Kleiner Tip:

es gibt nette Backupprogramm wie dirvish, rsnapshot die auf Unix-Dateisystemen mit Hilfe von Symlinks nette kleine Incs bauen. Speziel wegen Backupplatz eine interessante Idee zum ansehen. läuft bei Mir seit c.a. 2 jahren (dirvish)

Hallo Wernieman

kannst eine Beschreibung Posten, wie du das machst?   

Mache im Moment sowas ähnliches mit rsync (verwendet symlink  NTFS) aber unter Windows und wahrscheinlich muss ich mich als BBb Besitzer doch etwas mehr auf Linux einlassen ;-)
Aber das mit den verschiedenen Ständen hat mit schon viel Ärger/Arbeit erspart, wenn ich erst nach Tagen gemerkt habe das ich wieder was aus versehen geschossen habe.

Gruß und Danke Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

betateilchen

nur mal so nebenbei: rsync wurde von Linux nach Windows portiert, nicht umgekehrt ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

AHA1805

Zitat von: betateilchen am 01 April 2014, 18:07:12
nur mal so nebenbei: rsync wurde von Linux nach Windows portiert, nicht umgekehrt ;)

Das weiß ich  ;) ist aber trotzdem super,
läuft über irgend eine GNU Bibliothek und einem Verwaltungss VBS Script (wurde mal von Ct zur Verfügung gestellt)

D.h. ist kann es leider nicht 1 zu 1 so in Linux verwenden.

Gruß Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

betateilchen

Zitat von: AHA1805 am 01 April 2014, 20:11:17
D.h. ist kann es leider nicht 1 zu 1 so in Linux verwenden.

stimmt, so umständlich brauchst Du es nicht mehr, da rsync in Linux einfach als Befehl zur Verfügung steht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

ALSO ....

1. Du brauchst ein Unix-Dateisystem (z.B. extX, xfs, btrfs), Unix-Netzwerkdateisystem (z.B. nfs), kein Windows (z.B. FAT, NTFS, smb) oder anderen Pseudodateisysteme (z.B. ftp)
2. folgende Doku (für dirvish):
http://wiki.ubuntuusers.de/dirvish
http://www.dirvish.org/debian.howto.html

Ist besser auf die Vorhandenen Dokus zu verweisen, als das "Rad neu zu erfinden" .... helfe Dir gerne bei weiteren Problemen, dazu sollten wir aber einen neuen thread "aufmachen".

Übrigens hat ein Freund von mir dieses auch zu einem Cloud-Dienstanbieter ausgelagert. Zusätzlich am Ziel sogar ein "Krypto-FS" eingesetzt ... aber das ist schon eine superhohe Hürde für einen Linux-Anfänger. Fange lieber mit einer lokalen Backuplösung an ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

yogiflop

Guten Morgen,


erstmal vielen Dank für die ganzen Lösungsansätze.

Momentan ist es nun so gelöst, das ich die Cloud ins FileSystem mounte und einfach mit dem tar-Befehl ein Paket erzeuge das ich dann in die Cloud schiebe.
Ich werde mir aber die Lösung mit der Backup-Software ebenfalls nochmal angucken, vielleicht ergeben sich dadurch andere und einfachere Wege.

gruß

Marc
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

Wernieman

Kleine Frage:
Welcher Anbieter und wie mountest Du?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

yogiflop

CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

Franz74

#28
Hallo,

nutzt doch einen eigenen Webspace und installiert darauf Owncloud mit https Verschlüsselung der Verbindung, das Unterstützt Webdav Zugriff und es gibt für jedes Betriebssystem Apps (Android, iOS usw.) bzw für Debian basierente Linux Systeme (Mint, Debian, Ubuntu, Raspbian) das davfs2 Paket

Also mit
aptitude install davfs2
Installieren und dann bei
dpkg-reconfigure davfs2
bei der Frage ob Unpriviligierten Benutzern erlaubt werden soll... JA Auswählen.

Nun kann das Remote Filesystem manuell so gemountet werden:
mount -t davfs https://<server.com>/remote.php/webdav/ /home/cloud/ -o rw,uid=1000,file_mode=0777,dir_mode=0777

Mit folgendem Eintrag in der fstab kann die Cloud beim Starten Automatisch nach /home/cloud eingebunden werden:
https://<server.com>/remote.php/webdav/    /home/cloud     davfs   user,noauto,file_mode=600,dir_mode=700 0 1

Damit davfs keine Zugangsdaten abfragt muss noch die Datei:
/home/<username>/.davfs2/secrets
mit folgendem Inhalt angelegt werden
https://<server.com>/remote.php/webdav/    <username> <password>

Franz

Wernieman

Ich befürchte, das webdav keine Hardlinks unterstützt und damit sind die von mir genannten Backupprogramme nicht sinnvoll einzusetzen...

Es sei denn, Du baust Dir im webdav-Laufwerk eine verschlüsselte Partition (Datei), welche Du per loopback mountest. Die kann dann ein "Ordnetliches" Dateisystem haben und ist damit dann vollständig (+ Sicherheit) dafür möglich. Bedauelicherweise braucht mann dafür dann doch schon "richtige" Linux-Kenntnisse.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

AHA1805

Hallo,

Danke zusammen :-)
Vielleicht mache ich ein Mix.
Lokal auf der sdcard mit symlinks für die Versionen auf die schnelle und via owncloud auf Umwegen zu meinem Windows homeserver welcher dann immer den letzten Stand der Installation hat.

Aber wie Wernieman schon geschrieben hat ist das schon eine große Herausforderung für ein Windowskind ;-).

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Wernieman

Hallo,

diese Programme arbeiten nicht mit symlinks sondern mit Hardlinks ... aber das jetzt zu erklären ist für einen "nicht-Admin" etwa schwer ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

AHA1805

Kenne ich von Windows
Hardlinks funktionierten bereits vor win7 auf NTFS Basis
Symlinks gehen auch über Laufwerke hinaus und auch auf Netzwerke.
Weiß aber nicht ob das auch so bei Linux ist.

Danke für die Info

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

sasquuatch

Zitat von: yogiflop am 02 April 2014, 09:47:59
ich habe bei Strato einen Hidrive und habe eine Kombi aus folgenden Anleitungen genommen ;-)

http://www.sbprojects.com/projects/raspberrypi/webdav.php

http://www.forum-raspberrypi.de/Thread-tutorial-strato-hidrive-unter-raspbian-als-virtuelle-festplatte-einbinden
das geht ja wie in den anleitungen beschrieben recht einfach einen ordner auf dem raspberry pi mit einer cloud zu synchonisieren.

möchte ich aber den ordner /opt/fhem in der cloud haben, funktioniert das nur bedingt. sprich, mounte ich den ordner /opt/fhem mit einer cloud (egal ob box oder hidrive) verschwindet der inhalt des ordners vom raspberry pi und wird so lange in den ordner lost+found verschoben, wie der ordner fhem gemountet ist. mache ich ein umount vom ordner /opt/fhem ist der inhalt des ordner wieder da.

so kann ich nie den inhalt mit einer cloud synchron halten. gibt es da ein lösung das es trotzdem geht?

ich dachte auch schon dran den inhalt des fhem ordners lokal zu speichern und nachdem mount zur cloud alles in die cloud zu schieben. problem ist dann aber, dass der inhalt des gemounteten ordner fhem nicht der selbe ist, wie lost+found. sprich wird aus irgendeinen grund der mount unterbrochen und ich bekomme den nicht wiederhergestellt, ist alles aus lost+found alt.

ich hoffe man versteht meine problematik.