Suche

    Backup

    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.

    SchrittVerzeichnisArchiv
    1/var/lib/symcon/ – Einstellungen, Skripte, Module, Archivvar.symcon.<Tag>.tar
    2/usr/share/symcon/ – Programmdateien und Oberflächenusr.symcon.<Tag>.tar
    3/usr/bin/symcon – das Programm selbstsymcon.<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.

    Eintrag im Meldungsprotokoll von Symcon: 25.10.2026, 03:00:45, Backup, Backup erfolgreich!
    Erfolgsmeldung nach der nächtlichen Sicherung

    Voraussetzungen

    • Symcon ab Version 8.1 unter Linux, zum Beispiel auf einem Raspberry Pi (das Skript nutzt tar auf 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

    1. Backup-Verzeichnis bereitstellen: Die NAS-Freigabe auf dem Symcon-Server mounten und prüfen, dass Symcon darin schreiben darf.
    2. Skript anlegen: In Symcon ein neues Skript erstellen und den Inhalt von System.Backup.ips.php hineinkopieren.
    3. Verzeichnis eintragen: Im Abschnitt „Konfiguration“ unter $base den Pfad zum Backup-Verzeichnis hinterlegen.
    4. 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.
    5. Testen: Das Skript einmal manuell ausführen und im Meldungsprotokoll nach „Backup erfolgreich!“ schauen.

    Konfiguration

    EinstellungBedeutung
    $baseBackup-Verzeichnis, z. B. /home/pi/backup/symcon
    $dayKennung für die Archive, standardmäßig der Wochentag (date('N'))
    $DEBUGDebug-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 .