Automatisches Backup-System für ioBroker JavaScript-Dateien mit Versionskontrolle, GitHub-Integration und Schutz vor sensiblen Daten.
- 🔄 Automatische Sicherung von JavaScript-Dateien aus ioBroker
- 📁 Beibehaltung der originalen Ordnerstruktur
- ⏱️ Optionale Versionskontrolle mit Zeitstempeln
- 🔧 Konfigurierbare Anzahl von Backup-Versionen (optional)
- 🔒 Automatische Schwärzung von Passwörtern und sensitiven Daten
- 🔑 Schutz sensitiver Zugangsdaten
- 📥 Git-Integration mit automatischen Commits (optional)
- 🔄 Echtzeit-Dateiüberwachung
- 🗑️ Automatische Bereinigung alter Versionen (optional)
- Linux-System mit Bash-Shell
- Git installiert (optional)
- inotify-tools Paket
- SSH-Zugang zu GitHub (optional)
- GitHub-Konto (optional)
- Erstellt komplettes Backup aller .js Dateien
- Behält originale Verzeichnisstruktur bei
- Initialisiert Git-Repository (optional)
- Führt initialen Commit auf GitHub durch (optional)
- Überwacht Dateiänderungen in Echtzeit
- Erstellt neues Backup bei Dateiänderung
- Behält konfigurierte Anzahl von Versionen (optional)
- Committet Änderungen automatisch zu GitHub (optional)
- Jedes Backup enthält Zeitstempel
- Behält konfigurierte Anzahl von Versionen
- Entfernt älteste Versionen automatisch
- Git-Commit-Nachrichten enthalten:
- Skriptname
- Zeitstempel
- Vorgenommene Änderungen
- Erkennt und schwärzt Passwörter, API-Keys und andere sensible Daten in JavaScript-Dateien.
Variablen (
const, Var, let), Direktzuweisungen, Objekt-Eigenschaften, Json Style wird auf folgende Textphrasen überprüft:passwordpasspasswortpasswduserbenutzerapikeysecret
- Skript herunterladen und installieren:
# Git-Repository klonen
git clone https://github.com/bloop16/iobroker-JavaSkript-Backup-System.git
# Datei umbenennen und verschieben
mv iobroker-JavaSkript-Backup-System/backup_iobroker_skripts /usr/local/bin/backup_iobroker_skripts.sh
# Ordner löschen
rm -rf iobroker-JavaSkript-Backup-System
# Skript ausführbar machen:
sudo chmod +x /usr/local/bin/backup_iobroker_skripts.sh- Benötigte Pakete installieren:
sudo apt-get update
sudo apt-get install git inotify-tools- JavaSkript Adapter Spiegelungen Aktivieren
In den Einstellungen des JavaSkript Adapters muss die Spiegelung aktiviert werden. Der Dafür eingetragene Ordner ist in den den Skript Konfigurationen anzupassen.
SOURCE_DIR
Falls die Git-Integration genutzt werden soll, muss git korrekt konfiguriert sein. Die Konfiguration kann so vorgenommen werden:
# Git-Benutzernamen setzen
git config --global user.name "Ihr GitHub-Benutzername"
# Git-E-Mail setzen
git config --global user.email "ihre-github-email@example.com"
Diese Konfiguration stellt sicher, dass Commits mit den korrekten Benutzerinformationen versehen werden.- SSH-Schlüssel für GitHub generieren (optional):
ssh-keygen -t ed25519 -C "ihre-github-email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519-
SSH-Schlüssel zu GitHub hinzufügen (optional):
- Öffentlichen Schlüssel kopieren:
cat ~/.ssh/id_ed25519.pub - GitHub → Einstellungen → SSH und GPG Schlüssel
- "Neuer SSH-Schlüssel" klicken
- Kopierten Schlüssel einfügen
- Mit Titel "IobrokerBackup" speichern
- Öffentlichen Schlüssel kopieren:
-
GitHub-Repository erstellen (optional):
- Name:
Repository Name
- Name:
Bei Bedarf folgende Variablen im Skript anpassen:
SOURCE_DIR="/opt/iobroker/skriptMirror/"
TARGET_DIR="/opt/iobroker/backupSkripts/"
REPO_NAME="[RepoName]"
GITHUB_USER="[UserName]"
SCRIPT_PATH="/usr/local/bin/backup_iobroker_skripts.sh"
MAX_BACKUPS=10 # Maximale Anzahl der Backups pro Skript (nur bei USE_VERSIONS=true)
USE_GIT=true # Git-Integration aktivieren/deaktivieren
USE_VERSIONS=true # Versionierung mit Zeitstempeln aktivieren/deaktivierenMit Versionskontrolle (USE_VERSIONS=true):
/opt/iobroker/backupSkripts/
└── pfad/zum/skript/
└── skriptname/
├── skriptname_20250406_123456.js
├── skriptname_20250406_123789.js
└── ...
Ohne Versionskontrolle (USE_VERSIONS=false):
/opt/iobroker/backupSkripts/
└── pfad/zum/skript/
└── skriptname.js
- Systemd Service-Datei erstellen:
sudo nano /etc/systemd/system/backup-iobroker-skripts.service- Folgenden Inhalt in die Service-Datei einfügen:
[Unit]
Description=ioBroker Scripts Backup Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/backup_iobroker_skripts.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target- Systemd neu laden und Service aktivieren:
# Systemd neu laden
sudo systemctl daemon-reload
# Service aktivieren (Start bei Boot)
sudo systemctl enable backup-iobroker-skripts.service
# Service starten
sudo systemctl start backup-iobroker-skripts.service- Service-Status überprüfen:
sudo systemctl status backup-iobroker-skripts.service- Sensitivitätsschutz aktivierbar/deaktivierbar über
SANITIZE_SENSITIVE
- Initiale Version
- Automatisches Backup von ioBroker JavaScript-Dateien
- Erhaltung der Ordnerstruktur
- Optionale Versionierung mit Zeitstempeln
- Automatische Überwachung von Dateiänderungen
- Automatische Bereinigung alter Versionen
- Git-Integration mit automatischen Commits
- Konfigurierbare Anzahl von Backup-Versionen