Skip to content

Commit

Permalink
Merge pull request #7 from GermanBluefox/master
Browse files Browse the repository at this point in the history
### 0.2.0 (14.07.2018)
  • Loading branch information
simatec authored Jul 14, 2018
2 parents 31fdfa7 + ec3141c commit a6d4378
Show file tree
Hide file tree
Showing 10 changed files with 728 additions and 1,170 deletions.
173 changes: 5 additions & 168 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,176 +7,13 @@

[![NPM](https://nodei.co/npm/iobroker.backitup.png?downloads=true)](https://nodei.co/npm/iobroker.backitup/)

***English Description: https://github.com/simatec/ioBroker.backitup/blob/master/README_english.md***

Backitup ist eine Backuplösung, mit der das zyklische Sichern einer IoBroker-Installation sowie einer Homematic CCU möglich ist.

In der aktuellen Version funktioniert der Adapter nur auf Linux, da die fehlerfreie Ausführung des Shell-Scripts auf anderen Distributionen NOCH nicht funktioniert.

## Inhaltsverzeichnis:
1. Backup Type
- 1.1 Minimales Backup (Standard IoBroker Backup)
- 1.2 Komplettes Backup
- 1.3 CCU Backup (CCU-Original / pivCCU / Raspberrymatic)
- 1.4 Optionales Mysql-Backup (Localhost)

2. Vorbereitung

3. Ftp vs. CIFS

4. Verwendung
- 4.1 Erstellte Datenpunkte
- 4.3 History-Log mit CCS formatieren
- 4.4 Backupstatus im OneClick-Button darstellen
5. Restore eines Backups
- 5.1 Minimal Backup wiederherstellen
- 5.2 Komplett Backup wiederherstellen
- 5.3 Raspberrymatic/CCU Backup wiederherstellen
6. Fehlersuche
- 6.1 Logging aktivieren
- 6.2 Debugging aktivieren
7. Aufgetretene Fehler / Lösungen
- 7.1 Webinterface nach Restore nicht erreichbar
- 7.2 JS-Datenbunkt nicht beschreibbar
- 7.3 Fehlermeldung: "Komando nicht gefunden"
- 7.4 Komplett-Backup bleibt hängen
- 7.5 Geänderte Werte in Dp werden nicht übernommen
8. Changelog


## 1. Backuptypen:

Backitup bietet die Möglichkeit drei (optional mit DB-Backup) verschiedene Backuptypen zyklisch oder auf Knopfdruck durch zu führen. Jedes Backup wird standardmäßig im Verzeichnis /opt/iobroker/backups/ abgelegt. Optional kann ein FTP-Upload eingerichtet oder alternativ ein CIFS-Mount genutzt werden.

1. Standard Backup
- Dieses Backup entspricht dem in IoBroker enthaltenen Backup welches man in der Konsole über den Aufruf „./iobroker backup“ starten kann. Nur wird es hier durch die festgelegten Einstellungen in der Adapterkonfiguration oder dem Widget OneClick-Backup durchgeführt ohne die Konsole verwenden zu müssen.
2. Komplettes Backup
- Dieses Backup sichert den kompletten IoBroker Ordner inklusive aller Unterordner und deren Dateien samt Dateiberechtigungen. Hierbei sollte die Dateigröße nicht ausser Acht gelassen werden, denn ein solches Backup hat oft mehrere hundert MB.
Um sicher zu gehen dass alle aktuellsten States gesichert werden muss hier in der Konfiguration der Hacken bei IoBroker Stop/Start gesetzt werden.
3. CCU Backup (Homematic)
- Dieses Backup bietet die Möglichkeit 3 verschiedene Varianten einer Homematic Installations (CCU-Original / pivCCU / Raspberrymatic) zu sichern. Auch die Ausführung dieses Backups kann durch die festgelegten Einstellungen in der Adapterkonfiguration oder dem Widget OneClick-Backup durchgeführt werden.
4. Mysql-Backup (Localhost)
- Dieses separat einstellbare Backup wird sofern es aktiviert ist, bei jedem Backup egal ob „minimal“ oder „komplett“ erstellt und nach Ablauf der angegebenen Vorhaltezeit auch gelöscht. FTP oder CIFS sind für dieses Backup ebenfalls gültig sofern bei den anderen IoBroker-Backup-Typen eingestellt.

## 2. Vorbereitung:

Folgende Schritte sollten durchgeführt werden um den Adapter verwenden zu können (wenn das Backup-Script v1/v2/v3 verwendet wurde, zuerst Alles löschen (Datenpunkte/Enum.functions/Shell-Script und JavaScript deaktivieren oder löschen!)


## 3. Ftp-Dienst oder CIFS für das optionale weitersichern auf einen Nas nutzen?

- Vorteile CIFS:
- weniger Schreibzyklen auf euren Datenträger (evtl. relevant wenn Raspberry mit SD-Karte verwendet wird um Diese zu schonen)
- Es ist möglich die „Alten Backups“ automatisiert auf dem Nas löschen zu lassen
- Nachteile CIFS:
- Wenn ein Mounten nicht möglich ist, wird kein Backup erstellt!
- „Alte Backups“ können automatisiert auf dem Nas gelöscht werden. Im schlimmsten Fall ist somit kein Backup mehr vorhanden wenn ihr es benötigt.
- Pfadangaben (Schreibweise beachten):
- CIFS: "Freigabename/Pfadangabe"
- FTP: "/Pfadangabe"


## 4. Verwendung:

1. Der Adapter erstellt 7 Datenpunkte zur Verwendung in Vis
- start_ccu_Backup -> dient als Auslösetrigger für ein CCU-Backup (Kann in Vis durch einen Button auf true gesetzt werden)
- start_minimal_Backup -> dient als Auslösetrigger für ein Standard-Backup (Kann in Vis durch einen Button auf true gesetzt werden)
- start_komplett_Backup -> dient als Auslösetrigger für ein Komplett-Backup (Kann in Vis durch einen Button auf true gesetzt werden)

- Backup_history -> diehnt als History-Log welcher in Vis via CCS vom Design anpassbar ist.
- letztes_ccu_Backup -> speichert das Erstell-Datum und die Uhrzeit des letzten CCU Backups
- letztes_minimal_Backup -> speichert das Erstell-Datum und die Uhrzeit des letzten Standard Backups
- letztes_ccu_Backup -> speichert das Erstell-Datum und die Uhrzeit des letzten Komplett Backups

2. History-Log in Vis anzeigen
- Es ist möglich den History-Log bspw. in einem Html-Widget durch eintragen folgender Zeile in HTML darzustellen:
```
{backitup.0.History.Backup_history}
```
Syntax: {BackitupInstanz.History.Backup_history}


3. CCS-Formatierung des History-Logs:
```
.backup_history{
display:block;
width:100%;
/* overflow-y:scroll; */
}
.bkptyp_minimal
{
float:left;
color:white;
font-size:18px;
}
.bkptyp_komplett
{
float:left;
color:yellow;
font-size:18px;
}
.bkptyp_ccu
{
float:left;
color:red;
font-size:18px;
}
```
4. OneClick-Button mit Status-Text
- Wenn ein OneClick-Datenpunkt auf true gesetzt wird startet das entsprechende Backup und nach einer vordefinierten Zeit wird dieser Datenpunkt wieder auf false gesetzt somit ist es möglich einen Button mit Status zu erstellen, hierzu folgende Zeile anpassen und in Vis als Knopftext eintragen:
```
{wert:backitup.0.OneClick.start_minimal_Backup; wert === "true" ? "Minimal Backup </br> wird erstellt" : "Minimal Backup </br> starten"}
```
Syntax: {wert:BackitupInstanz.OnClick.Auslösetrigger; wert === "true" ? "Text während der Backuperstellung" : "Standard-Text"}

## 5. Restore:

1. Restore eines minimalen / normalen IoBroker Backups:
- Das Backup muss wie gewohnt im Verzeichnis „opt/iobroker/backups/“ liegen
- Es kann über die Konsole mit Hilfe des Befehls: „iobroker restore (Nummer des Backups aus der Liste)“ wieder hergestellt werden.

2. Restore eines kompletten Backups:
- Den Befehl:“sudo iobroker stop“ über die Konsole ausführen
- Das erstellte Backup muss in das Verzeichnis „root/“ kopiert werden
- Den Befehl:" sudo tar -xzvf Backupname.tar.gz -C / " über die Konsole ausführen
- Warten - Während der Wiederherstellung wird euch angezeigt was gerade gemacht wird
- Den Befehl: „sudo iobroker start“ über die Konsole ausführen

3. Restore eines Raspberrymatic / CCU Backups:
- *.sbk Datei via SCP in das Verzeichnis „ /usr/local/tmp directory“ auf die Raspberrymatic kopieren
- Über die Konsole als Root-User auf der Raspberrymatic einloggen
- Den Befehl: „/bin/restoreBackup.sh /user/local/tmp/EuerBackupDateiname“ auf der Raspberrymatic ausführen.
- Den Befehl:“reboot“ auf der Raspberrymatic ausführen um den PI neu zu starten

Alternativ kann das Backup natürlich auch wie gewohnt über das Webinterface wieder hergestellt werden.

## 6. Fehlersuche:

1. In der Adapterkonfiguration gibt es die Möglichkeit Log zu aktivieren so werden im IoBroker-Log verschiedene Meldungen (bspw. Backup-Zeiten und States) die zur Fehlersuche dienen können aufgelistet

2. Zusätzlich gibt es die Möglichkeit Debug zu aktivieren nun wird im IoBroker-Log der Befehl ausgegeben der an die backitup.sh übergeben wird. Dieser Befehl kann eins zu eins in die Konsole (mit Putty o.ä) eingegeben werden um Fehler eingrenzen zu können.

## 7. Aufgetretene Fehler / Lösungen:

Hier eine Liste der bisher aufgetretenen Probleme und deren Lösungen sofern vorhanden.

1. Olifall (aus dem Forum) hatte das Problem dass nach dem Restore das Webinterface des IoBrokers nicht mehr erreichbar war, durch folgende Schritte über die Konsole konnte er dies beheben:
- sudo iobroker status
- Meldung = "No connection to states 127.0.0.0:6379[redis]"
- sudo apt-get install redis-server

2. Beim Testen kam es bei Anderen vor dass einige Datenpunkte nicht beschreib /-änderbar waren, dieser Fehler konnte nicht nachgestellt und dementsprechend nicht behoben werden.

3. Fehlermeldung: „Kommando nicht gefunden“
Durch die Unterschiede von Unix und Windows, darf die backitup.sh nicht unter Windows (Editor) geändert werden.
Erklärung:
Unter DOS wird in Textdateien ein Zeilenende durch die Sequenz return (Dezimalcode 13) und new line (Dezimalcode 10) dargestellt. Unix verwendet dagegen nur new line.

4. Iobroker bleibt beim komplett-Backup hängen / startet nicht mehr
Einige Benutzer berichteten dass das IoBroker komplett-Backup nicht richtig durchläuft bzw. der IoBroker gestoppt und nicht mehr gestartet wird. Hierfür ist es möglich in der Adapter- Konfigurations-Datenpunkten den Stop/Start des IoBrokers beim komplett-Backup zu deaktivieren.
***[English Description](docs/en/backitup.md)***

***[Deutsche Beschreibung](docs/de/backitup.md)***

## Changelog
### 0.2.0 (14.07.2018)
* (blufox) Code formatting

### 0.1.8 (11.07.2018)
* (darkiop) MySQL-Sicherung um Host- und Portabfrage erweitert
Expand Down
Loading

0 comments on commit a6d4378

Please sign in to comment.