Das System.Backup.ips.php-Skript erstellt einmal täglich eine Sicherung von Symcon. Einstellungen, Skripte, Module und das Programm selbst werden als tar-Archive in ein Backup-Verzeichnis geschrieben, zum Beispiel auf ein gemountetes NAS. Weil jeder Wochentag sein eigenes Archiv bekommt, kann man immer bis zu sieben Tage zurückgehen.
Wie alles begann
Die Grundlage stammt von Silberstreifen aus dem Jahr 2016. Ich habe das Skript seitdem für meinen Raspberry Pi weiterentwickelt: Zuerst kamen eine einheitliche Erfolgsmeldung im Log und ein FTP-Upload zum NAS dazu. Den Upload habe ich später wieder ausgebaut und durch ein externes rsync ersetzt – das Skript schreibt seitdem einfach in ein gemountetes Verzeichnis, um den Rest kümmert sich das NAS. Seit November 2025 ist das Skript Teil meiner Skript-Bibliothek.
Was gesichert wird
Das Skript arbeitet in drei Schritten, die jeweils als eigener Skriptaufruf laufen. So kommt keiner der Schritte der maximalen Laufzeit eines Skripts in die Quere.
| Schritt | Verzeichnis | Archiv |
|---|---|---|
| 1 | /var/lib/symcon/ – Einstellungen, Skripte, Module, Archiv | var.symcon.<Tag>.tar |
| 2 | /usr/share/symcon/ – Programmdateien und Oberflächen | usr.symcon.<Tag>.tar |
| 3 | /usr/bin/symcon – das Programm selbst | symcon.<Version>.tar |
<Tag> ist die Nummer des Wochentags (1 = Montag bis 7 = Sonntag). Das Archiv vom gleichen Wochentag der Vorwoche wird dabei überschrieben. Das Programm wird nur einmal je Symcon-Version gesichert, solange sich die Version nicht ändert, bleibt das vorhandene Archiv bestehen.
Bevor es losgeht, prüft das Skript, ob das Backup-Verzeichnis erreichbar ist. Schläft das NAS gerade, wartet es bis zu 30 Sekunden, bis das Verzeichnis da ist. Fehler in einzelnen Schritten und die abschließende Meldung „Backup erfolgreich!“ landen im Meldungsprotokoll von Symcon.

Voraussetzungen
- Symcon ab Version 8.1 unter Linux, zum Beispiel auf einem Raspberry Pi (das Skript nutzt
tarauf der Kommandozeile) - Meine Symcon Skript-Bibliothek
ab Version 3.0 (
__autoload.php,System.Functions.ips.php) - Ein Backup-Verzeichnis, in das Symcon schreiben darf, idealerweise eine gemountete Freigabe auf dem NAS
Installation
- Backup-Verzeichnis bereitstellen: Die NAS-Freigabe auf dem Symcon-Server mounten und prüfen, dass Symcon darin schreiben darf.
- Skript anlegen: In Symcon ein neues Skript erstellen und den Inhalt von System.Backup.ips.php hineinkopieren.
- Verzeichnis eintragen: Im Abschnitt „Konfiguration“ unter
$baseden Pfad zum Backup-Verzeichnis hinterlegen. - Zeitplan anlegen: Unter dem Skript ein zyklisches Ereignis anlegen, das das Skript einmal täglich startet, am besten nachts – bei mir läuft es um 3 Uhr.
- Testen: Das Skript einmal manuell ausführen und im Meldungsprotokoll nach „Backup erfolgreich!“ schauen.
Konfiguration
| Einstellung | Bedeutung |
|---|---|
$base | Backup-Verzeichnis, z. B. /home/pi/backup/symcon |
$day | Kennung für die Archive, standardmäßig der Wochentag (date('N')) |
$DEBUG | Debug-Ausgaben einschalten |
Wer mehr als eine Woche aufheben möchte, kann $day zum Beispiel auf den Tag des Monats (date('d')) umstellen und bekommt dann bis zu 31 Sicherungen.
Sicherung einspielen
Zum Wiederherstellen Symcon anhalten, die gewünschten Archive aus dem Wurzelverzeichnis heraus entpacken und Symcon wieder starten:
sudo systemctl stop symcon
cd /
sudo tar -xvf /home/pi/backup/symcon/var.symcon.3.tar
sudo systemctl start symcon
Für eine komplette Wiederherstellung kommen bei Bedarf noch usr.symcon.<Tag>.tar und das Programmarchiv symcon.<Version>.tar dazu.
Fragen und Anregungen gerne in meinem Forum-Thread zur Skript-Bibliothek .