NEWS
[Vorlage] Script für automatisches Backup steuerbar durch VIS
-
Homematic hab ich nicht!
Dann bleib ich wohl bei dem jetzt hier [emoji6]
-
aktuell kann ich das doch nur machen wenn ich in der homematic Oberfläche bin oder? `
Nein, Jens Maus hat das seit Version 2.27.8.20170410 die Möglichkeit eines Backups über die Konsole eingebunden, diese will ich eben nutzen und dann das Backup der Raspberrymatic auf meinen Nas verschieben. So der Plan.
-
aktuell kann ich das doch nur machen wenn ich in der homematic Oberfläche bin oder? `
Nein, Jens Maus hat das seit Version 2.27.8.20170410 die Möglichkeit eines Backups über die Konsole eingebunden, diese will ich eben nutzen und dann das Backup der Raspberrymatic auf meinen Nas verschieben. So der Plan. ` Jo,
guter Plan
Daumen hoch. Ich lasse mich überraschen. Hab leider keinen Plan und könnte nur mit testen… Danke für auf jeden Fall schon Mal.
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Ich habe momentan das Problem das script einfach irgend wann aufhört zu sichern. Weis aber noch nicht warum!?
Liegt es an nem reboot und ich muss das script dann erst einmal manuell anstossen? Reicht nach einem reboot Script stopen und starten?
Ich seh noch keinen Zusammenhang
Ich guck jetzt jeden Tag ob gelaufen ist oder ob ich wieder anstupsen muss, was aber ja nicht sinn der sache ist.
-
Also wenn du einen Reboot machst sollten alle Schedule-Zeiten weg sein, somit musst du die Backup-Zeiten neu einstellen, denn erst dann wird das "Schedule" neu gesetzt und somit die Backupzeiten aktiv.
Dieses Verhalten hatte ich noch nicht, ich habe aber auch keinen Reboot gemacht.
-
Ah ok
Dann wird das an dem reboot liegen.
Verwirrend ist dann halt nur das die Anzeige im vis aussieht wie vor dem reboot.
Wenn man es nicht weis kommt man nicht auf die idee die zeiten neu zu stellen
-
Die Zeiten stehen auch drinnen da ändert sich nichts, nur das schedule ist nicht mehr gesetzt.
Aber du hast recht, da muss ich mal was einpflegen dass die gesetzten zeiten nach einem Reboot auch aktiviert werden.
Edit
Das habe ich bei mir auch drin :lol:
Zeile 109(bei mir):
//BAckupStellen();
musst du die zwei "//" rausnehmen dann sollte es beim Scriptstart / Reboot initiallisiert werden
-
Danke
Ich guck heute Abend mal.
-
Ah, gut das ich das Thema abonniert habe. Hatte auch keine Backups mehr auf meiner Synology. Wegen Adapter Tests muss ich häufiger den pi3 neu starten…
Have die // vor dem Befehl im Skript jetzt Mal entfernt.
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Nur mal so als idee.
Könnte das Script nicht einen datenpunkt anlegen mit dem zeitstempel von der letzten Ausführung?
Dann könnte man den im vis Anzeigen lassen zur Kontrolle
-
@ringdingringding:Nur mal so als idee.
Könnte das Script nicht einen datenpunkt anlegen mit dem zeitstempel von der letzten Ausführung?
Dann könnte man den im vis Anzeigen lassen zur Kontrolle `
Wenn es weiter nichts ist, hab ich erledigt und im Script des ersten Posts eingepflegt. Du kannst die zwei Zeilen aber auch einfach bei dir einpflegen.
Einmal hier:
createState(instanz + pfad0 + 'Auto_Backup', {def: 'false',type: 'boolean',name: 'Automatisches Backup'}); createState(instanz + pfad0 +'Backupeinstellungen_sichtbar', {def: 'false',type: 'boolean',name: 'Backup Einstellungen '}); //Datenpunkt für Vis - Einstellungen sichtbar Ja/Nein // Neu - einfach dazu schreiben createState(instanz + pfad0 + 'letztes_Backup', {def: 'Noch kein Backup', type: 'string', name: 'Letztes Backup'}); // Neu - einfach dazu schreiben
Und hier:
function backup_erstellen(typ, name, zeit, host, pfad, user, passwd) { // exec(([bash_script ,typ, name, zeit, pfad].join('')), function(err, stdout, stderr) { exec((bash_script+' "'+typ+'|'+name+'|'+zeit+'|'+host+'|'+pfad+'|'+user+'|'+passwd+'"'), function(err, stdout, stderr) { if(logging){ if(err) log(stderr, 'error'); else log('exec: ' + stdout); } // Neu - einfach dazu schreiben setState(instanz + pfad0 + 'letztes_Backup', formatDate(new Date(), 'DD.MM.YYYY') +' um '+ formatDate(new Date(), 'hh:mm:ss')); // Neu - einfach dazu schreiben }); if(logging) log("exec: " + ((bash_script+' '+typ+' '+zeit+' '+pfad))); }
-
Genial danke endlich habe ich auch ein auto Backup das funktioniert!!
DANKE!!
Leider bin ich zu blöd folgendes ans laufen zu bringen wenn jemand Tipps hat wäre ich sehr froh
- <list type="decimal">2. 1. ich möchte mit meiner Synology nicht FTP benutzen sonder SFTP leider bekomme ich keine verbidung zu stande. Weis jemand was ich ändern müsste?
<list type="2">* 2. mit lftp gibt es auch den Befehl "mirror" anstelle von "put". Damit sollte es doch möglich sein nur die eingestellten bakups synchron zu halten. Dann würde man das händische löschen auf der Diskstation sparen oder?
- <list type="decimal">2. 1. ich möchte mit meiner Synology nicht FTP benutzen sonder SFTP leider bekomme ich keine verbidung zu stande. Weis jemand was ich ändern müsste?
-
Wenn es weiter nichts ist, hab ich erledigt und im Script des ersten Posts eingepflegt. `
Funktioniert so wie es aussieht. Mal die Tage abwarten DANKE
-
1. ich möchte mit meiner Synology nicht FTP benutzen sonder SFTP leider bekomme ich keine verbidung zu stande. Weis jemand was ich ändern müsste? `
Was ich gelesen habe kann man das mit lftp auch machen, müsstest du hier mal nachlesen:http://how-to.wikia.com/wiki/How_to_use … ftp_client
mit lftp gibt es auch den Befehl "mirror" anstelle von "put". Damit sollte es doch möglich sein nur die eingestellten bakups synchron zu halten. Dann würde man das händische löschen auf der Diskstation sparen oder? `
Die Überlegung war damals da die Backups nicht wirklich groß sind eben viele Stände zu "archivieren" aber ich werde mir das mal anschauen ob ich das eingepflegt bekomme. -
<list type="2">* 2. mit lftp gibt es auch den Befehl "mirror" anstelle von "put". Damit sollte es doch möglich sein nur die eingestellten bakups synchron zu halten. Dann würde man das händische löschen auf der Diskstation sparen oder? `
Das bedeutet was? Es gibt nur ein Backup und dieses wird einfach nur immer aktuallisiert?
Was passiert bei einem Fehler, hätte man dann im dümmsten fall ein defektes Backup liegen was man nicht nutzen kann?
Gruß
-
Genau das war der Grund warum ich das nicht als Automatik eingebaut habe. Ich persönlich bin der Meinung dass eben die letze Rückfallebene nicht automatisiert werden sollte. Denoch schau ich wie das generell möglich wäre.
-
Dann macht es ja schon eher sinn wenn man für jeden Wochentag ein Backup anlegt und das dann immer aktuell hält.
Oder halt alte daten auf dem ftp löschen kann
-
Danke für das Backup Script und das Vis Widget.
Funktioniert prima. Tolle Sache. Auch mit FTP.
Zum Widget:
Was ich bemerkt habe, dass bei mir die Überschriften "normale Backup" usw. nicht formatiert wurden, die Font Size der Uhrzeiten zu groß ist und der "Schließen" Knopf keine Funktion hat.
Ein kleine Verbesserung wäre, wenn das Widget einen Knopf hätte, der "Backup jetzt" heißt". Dann könnte man den immer drücken, wenn man mal viel Änderungen gemacht hätte.
Zur Dok.
Was noch super wäre, wenn ein paar Beispiele zum Aufruf des Backup Scripts im Script dokumentiert würde. Es ist zwar ein formale Dokumentation dabei, aber für mich ist es immer einfacher, wenn ich ein lauffähiges Beispiel nehme und modifiziere.
Fazit:
In Summe hat mich die Integration dieses Backups 1,5 Stunden gekostet. Das ist schon ziemlich lange.
Wenn ich in alle Bescheidheit einen Wunsch an die ioBroker Entwickler äußern könnte, dann wäre es, dass die Verfahren zu Reusability von Scripts und Vis Views anderer Leute lzuerleichtern. Der Traum wäre so eine Art App Store.
-
Heute gab es wieder keine Sicherung.
Letzte ist vom 14.2. dank Datenpunkt im vis direkt gesehen
Script neu gestartet und mal weiter beobachten.
Raspi läuft seit 4 Tagen also liegt es da dran nicht.
Gruss
-
Komisch, da das Backup über Schedule aufgerufen wird wäre es interessant zu wissen ob das schedule noch aktiv ist.
Füge mal:
log('Letzter Backupaufruf:' + formatDate(new Date(), 'DD.MM.YYYY') +' um '+ formatDate(new Date(), 'hh:mm:ss'));
über dem Backup-Aufruf ein, so kannst du im Log sehen ob der Aufruf überhaupt noch kommt.
Direkt als erstes in dieser Funktion:
function backup_erstellen(typ, name, zeit, host, pfad, user, passwd) {
Nur nebenbei bei mir läuft seit ca. einem Monat jeden zweiten Tag ein Backup. Ich verwende aber auch einen alten Javascript-Adapter 3.4.0