Hallo zusammen,
Da ich mich die letzten Tage etwas länger damit rumgeschlagen habe um mein FHEM Backup in einer externen Cloud zu sichern, dachte ich
vielleicht kann man anderen die dies vorhaben mit einer kleinen Anleitung etwas Zeit sparen:
Mein Grundgedanke war zum einen das ich nur für die Backups keine OwnCloud aufsetzen wollte und zudem meine Backups "räumlich getrennt" vom System haben.
GoogleDrive ist der Einzige Cloud Dienst den ich finden konnte für den es einen ARM kompatiblen client gibt: Grive2
https://github.com/vitalif/grive2 (https://github.com/vitalif/grive2)
Das Repository enthält alle Sourcen zum Download und eine gute readme. Hier die Zusammenfassung:
3rd Party libs installieren
sudo apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev \
libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev
Im Grive Download Ordner Grive2 erstellen
mkdir build
cd build
cmake ..
make -j4
sudo make install
Dann im Home Verzeichniss einen Ordner erstellen der mit GoogleDrive synchronisiert werden soll:
mkdir GoogleDrive
cd GoogleDrive
Nun muss das GoogleKonto authentifiziert werden mit einmaliger Synchronisierung:
grive -a
Zukünftige Synchronisierungen kann man danach über
grive
durchführen
Ich habe die grive binaries in /opt/fhem/user/grive kopiert, damit diese beim Backup auch gesichert werden.
Damit die Synchronisierung des FHEM backup Ordners regelmäßig z.B. wöchentlich durchläuft kann man einen Cronjob einrichten. Es würde vermutlich auch über fhem "at" gehen aber man müsste als FHEM user einmal grive authentifizieren damit dies geht.
# crontabelle editieren
crontab -e
Jeden Sonntag um 04:00 die fhem backup files in GoogleDrive verschieben und synchronisieren
# Time def: minute hour dayOfMonth month dayOfWeek command1 && command 2 ...
0 4 * * 0 mv /opt/fhem/backup/* ~/GoogleDrive/ && cd ~/GoogleDrive && /opt/fhem/user/grive
Danach in Fhem pro Woche (hier sonntags um 3:00) ein Backup machen und es wird durch den chronjob eine Stunde Später synchronisiert.
define BackupFHEM at *03:00:00 { if($wday == 0) { fhem("backup") } }
Viele Grüße
Rockinghorse
Danke für die Anleitung.
Zitat von: Rockinghorse am 16 Januar 2016, 21:54:20
GoogleDrive ist der Einzige Cloud Dienst den ich finden konnte für den es einen ARM kompatiblen client gibt: Grive2
Mir fallen da spontan noch andere Dienste ein:
Strato HiDrive bietet sogar rsync als Zugriffsmöglichkeit, ausserdem lässt sich der Cloud Speicher alternativ als Netzlaufwerk einbinden. Das erleichtert solche backup-tasks erheblich :)
Microsoft OneDrive läßt sich per webdav einbinden.
Hi,
danke für den Hinweis. Ich hatte bei spider oak, tresorit und dropbox probiert aber nichts gefunden. Bei Google dann vermutlich die falschen Suchbegriffe.
Gruß,
Rockinghorse
Hallo Rockinghorse,
Mache ich was falsch oder fehlt in der Anleitung noch was?
Wenn der Befehl cmake . . aufgerufen wird, bekomme ich die Meldung, das die CMakeLists.txt-Datei fehlt.
Gruß Henry
Bist Du im richtigen Ordner?
ZitatIm Grive Download Ordner Grive2 erstellen
Hallo,
wo genau liegt der Folder?
Im Grive Download Ordner Grive2 erstellen
Außerdem wird laut Beispiel kein Ordner Grive2 sondern build erstellt.
Übersehe ich etwas oder passt da etwas nicht im Beispiel?
Danke
ok, deine Anleitung ist nicht vollständig kopiert worden. Hier die Originale: http://yourcmc.ru/wiki/Grive2
Ich habe gestern ein automatisches Backup nach google Drive per rclone eingerichtet. Nachfolgend eine kurze Beschreibung:
Installation rclone:
wget https://downloads.rclone.org/rclone-current-linux-arm.zip
unzip rclone-current-linux-arm.zip
sudo cp rclone-v1.42-linux-arm/rclone /usr/local/bin/
rclone config
Bei der Konfiguration müssen keine IDs, etc. angegeben werden.
Nach der Installation von rclone habe ich lediglich zwei "at" in FHEM eingerichtet:
erstellen des Backups (täglich um 3:31):
define autoBackup at *3:31:00 { fhem("backup") }
Upload des erstellten Backups auf googleDrive (täglich um 3:33):
define autoBackup at *3:33:00 { system("rclone copyto /opt/fhem/backup \"googleBackup:Pfad mit Schrägstrichen/FHEM-autoBackup\"") }
Für die korrekte Funktion in FHEM ist es noch notwendig die config-Datei ins Verzeichnis /opt/fhem zu kopieren (Dateiname: .rclone.conf), zusätzlich sind auch die Berechtigungen anzupassen
der Vorteil dieser Variante ist die Einfachheit und der geringe Speicherplatzbedarf von rclone ggü. den oben erwähnten googleDrive Dateien. Nähere Info unter:
https://www.hackster.io/uladzislau-bayouski/rclone-the-cloud-connected-048422 (https://www.hackster.io/uladzislau-bayouski/rclone-the-cloud-connected-048422)
https://rclone.org/ (https://rclone.org/)
Zitat von: QTreiber am 26 August 2018, 01:35:42
Ich habe gestern ein automatisches Backup nach google Drive per rclone eingerichtet. Nachfolgend eine kurze Beschreibung:
Installation rclone:
wget https://downloads.rclone.org/rclone-current-linux-arm.zip
unzip rclone-current-linux-arm.zip
sudo cp rclone-v1.42-linux-arm/rclone /usr/local/bin/
rclone config
Bei der Konfiguration müssen keine IDs, etc. angegeben werden.
Nach der Installation von rclone habe ich lediglich zwei "at" in FHEM eingerichtet:
erstellen des Backups (täglich um 3:31):
define autoBackup at *3:31:00 { fhem("backup") }
Upload des erstellten Backups auf googleDrive (täglich um 3:33):
define autoBackup at *3:33:00 { system("rclone copyto /opt/fhem/backup \"googleBackup:Pfad mit Schrägstrichen/FHEM-autoBackup\"") }
Für die korrekte Funktion in FHEM ist es noch notwendig die config-Datei ins Verzeichnis /opt/fhem zu kopieren (Dateiname: .rclone.conf), zusätzlich sind auch die Berechtigungen anzupassen
der Vorteil dieser Variante ist die Einfachheit und der geringe Speicherplatzbedarf von rclone ggü. den oben erwähnten googleDrive Dateien. Nähere Info unter:
https://www.hackster.io/uladzislau-bayouski/rclone-the-cloud-connected-048422 (https://www.hackster.io/uladzislau-bayouski/rclone-the-cloud-connected-048422)
https://rclone.org/ (https://rclone.org/)
Ich weiß das dingen hier is schon Asbach... Aber ich wollte das Backup auch über Drive lösen und das mit rclone schien mir die beste möglichkeit..
Nur hänge ich gerade an dem Problem das nen
{ system("rclone copyto /opt/fhem/backup \"drive:fhem_backup\"") }[\code]
dazu führt das mir das gesamte fhem hängen bleibt und ich es über putty neu starten muss.. Hat da jemand ne Idee was an dem regexp falsch ist? Weil ohne \"\" geht's genau so wenig und fhem friert mir auch ein.. Dummerweise habe ich aber auch absolut nirgends Log einträge von rclone.. Ich hab nur über top gesehen das es ausgeführt wird, aber habe keine ahnung was es da macht..
Ein Aufruf mit system BLOCKIERT solange bis fertig, ganz einfach...
D.h. entweder anders aufrufen oder ein & ans Ende packen damit es eben nicht blockiert...
EDIT: siehe z.B. http://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html
Gruß, Joachim
einfach unnötige Zeichen "wegstreichen" ;)
{ system("rclone copyto /opt/fhem/backup \"drive:fhem_backup\"") }
-> sollte so gehen
"rclone copyto /opt/fhem/backup "drive:fhem_backup""
Quelle https://fhem.de/commandref_DE.html#command
Zitat von: Otto123 am 12 Juni 2020, 17:52:44
einfach unnötige Zeichen "wegstreichen" ;)
{ system("rclone copyto /opt/fhem/backup \"drive:fhem_backup\"") }
-> sollte so gehen
"rclone copyto /opt/fhem/backup "drive:fhem_backup""
Quelle https://fhem.de/commandref_DE.html#command
Jupp Danke,
{system("rclone copyto /opt/fhem/backup/ drive:fhem_backup")}
wars dann schlussendlich damit er das Backup anwirft und auch auf Drive hochlädt.
Trotzdem noch mal der Hinweis: SO blockiert fhem aber bis fertig kopiert ist!
Gruß, Joachim
Hat eigentlich mal jemand folgendes probiert?
define autoBackup at *3:33:00 "rclone copyto /opt/fhem/backup/ drive:fhem_backup"
Das wäre auf jeden Fall nicht blockierend. Falls das nicht funktioniert, würde ich das eigentliche Backup in ein Shell-Skript "myShellScript.sh" einpacken und im at das Shell-Skript aufrufen:
define autoBackup at *3:33:00 "myShellScript.sh"
Ja, das hatte ich sogar probiert... Allerdings ist dann absolut nichts passiert und ich habe auch kein Backup auf drive gesehen gehabt, deswegen bin ich zurück auf die Version mit System. Und extra nen Shell Script anlegen nur für einen einzigen Befehl is dann doch etwas zuviel des guten.
Zitat von: betateilchen am 12 Juni 2020, 20:02:16
Hat eigentlich mal jemand folgendes probiert?
define autoBackup at *3:33:00 "rclone copyto /opt/fhem/backup/ drive:fhem_backup"
Das wäre auf jeden Fall nicht blockierend. Falls das nicht funktioniert, würde ich das eigentliche Backup in ein Shell-Skript "myShellScript.sh" einpacken und im at das Shell-Skript aufrufen:
define autoBackup at *3:33:00 "myShellScript.sh"
Zitat von: Keichi am 12 Juni 2020, 20:15:13
Script anlegen nur für einen einzigen Befehl is dann doch etwas zuviel des guten.
Aber dann nicht "weinen", wenn fhem mal stehen bleibt während des Backups... ;)
Gruß, Joachim
Zitat von: Keichi am 12 Juni 2020, 20:15:13
Und extra nen Shell Script anlegen nur für einen einzigen Befehl is dann doch etwas zuviel des guten.
Zu diesem Unfug fällt mir nur ein: "Denn sie wissen nicht, was sie tun..."
Zitat von: betateilchen am 12 Juni 2020, 20:19:21
Zu diesem Unfug fällt mir nur ein: "Denn sie wissen nicht, was sie tun..."
Warum, er tut es doch wissentlich! ;)
EDIT: um nicht zu sagen vorsätzlich ;)
EDIT: aber wie lange kann so ein Backup schon dauern... Ist kein Beinbruch, wenn 5min lang kein Licht angeht ;)
Gruß, Joachim
Zitat von: MadMax-FHEM am 12 Juni 2020, 20:16:21
Aber dann nicht "weinen", wenn fhem mal stehen bleibt während des Backups... ;)
Gruß, Joachim
Ist nicht genau DAS die Aufgabe vom Watchdog? ;)Ich seh gerade.. Der Watchdog bei FHEM erkennt sowas gar nicht.... Ich komm von RaspberryMatic da bin ich es gewöhnt das der Watchdog auch einschreitet wenn das System hängt.
Wenn Du ein "fhem" Watchdog meinst, nein. Wenn fhem steht, steht auch das Watchdog.
Wenn du ein System-Watchdog meinst, dann weiss ich nicht, was Du "watchen" würdest. Aber wenn schon auf System-Ebene, dann einfach den "rclone" Befehl direkt per cron-job ausführen!
Zitat von: amenomade am 12 Juni 2020, 20:27:06
Wenn Du ein "fhem" Watchdog meinst, nein. Wenn fhem steht, steht auch das Watchdog.
Wenn du ein System-Watchdog meinst, dann weiss ich nicht, was Du "watchen" würdest. Aber wenn schon auf System-Ebene, dann einfach den "rclone" Befehl direkt per cron-job ausführen!
Mäh.. Scheisse stimmt.. Da ich eh keine Outputs bekomme, macht nen Cron da sogar deutlich mehr sinn...
Zitat von: Keichi am 12 Juni 2020, 20:29:53
Da ich eh keine Outputs bekomme,
Der nächste Unfug von jemandem, der nicht weiß, was er tut.
Wenn Du den oben von mir vorgeschlagenen Weg wählst, bekommst Du auch Output ins FHEM Logfile, da in diesem Fall STDIN/STDOUT entsprechend umgeleitet werden.
Und was soll der Watchdog tun!?
Das Backup abbrechen!?
Und zwar vermutlich: JEDES MAL... ;)
Dann kannst du es auch gleich sein lassen...
EDIT: is bissi wie "flogging a dead horse"... langsam...
Gruß, Joachim
Zu einem automatischen Backup gehlrt auch eine fehlerbehandlung ... was Du aktuell eben nicht tust. Insofern wäre ein cronjob mit einem echten Script zu empfehlen!
Hi,
is dies noch möglich oder mittlerweile geblockt?
was meinst Du mit geblockt?
fhem -> backup?
googledrive -> EU wegen Server in US?
grive2 -> weil Vitaliy Russe ist?
;D
bei den besprochenen Tools grive2 und rclone sehe ich aktuelle Versionen auf den Webseiten, Einträge von letzten Monat - es scheint mir alles gut...
Ich habe es allerdings nicht am Laufen, mache backup auf die NAS.
Ganze Sätze würden helfen - da hast du Recht.
Ich weiß das Google letztens etwas mit 3rd party apps umgestellt hatte.
Ich suche eigentlich ne Lösung für nen guten Austausch zwischen meiner QNAP und google drive - dann wäre es egal wohin ich backuppen würde.
Ich denke, da muss ich mir mal mehr Gedanken machen.