Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
magicmirror:magicmirror_tipps:backup [07.10.2026] – [Ziel] koljamagicmirror:magicmirror_tipps:backup [08.10.2026] (aktuell) – kolja
Zeile 155: Zeile 155:
 ====== 2. Manuelles MagicMirror-Backup ====== ====== 2. Manuelles MagicMirror-Backup ======
  
-===== Script anlegen =====+Das manuelle Backup:
  
-<code bash> +  * wird per Befehl gestartet 
-mkdir -p ~/bin +  * läuft danach im Hintergrund 
-nano ~/bin/backup_magicmirror.sh +  * erzeugt ein geprüftes TAR.GZ-Archiv 
-</code>+  * erzeugt zusätzlich eine SHA-256-Prüfsumme 
 +  * sichert keine ''node_modules'' 
 +  * bricht ab, wenn das NAS nicht korrekt gemountet ist 
 +  * meldet Erfolg oder Fehler über ioBroker / Telegram
  
-Inhalt:+Die ioBroker-Zugangsdaten werden aus
  
-<code bash> +<code> 
-#!/usr/bin/env bash+~/.config/magicmirror-backup/iobroker.conf 
 +</code>
  
-SOURCE="$HOME/MagicMirror" +gelesen.
-NAS="/mnt/nasbackup" +
-BACKUP_BASE="$NAS/Manuelle_Backups" +
-LOGDIR="$HOME/magicmirror-backup-logs"+
  
-# Anpassen: 
-EXPECTED_SOURCE="//<NAS_HOST>/<NAS_SHARE>" 
  
 +===== Script =====
  
-check_nas() {+Das Script liegt unter:
  
-    if ! timeout 15s stat "$NAS" >/dev/null 2>&1; then +<code> 
-        echo "FEHLER: NAS ist nicht erreichbar." +~/bin/backup_magicmirror.sh 
-        return 1 +</code>
-    fi+
  
-    MOUNT_INFO="$(findmnt -T "$NAS" -n -o FSTYPE,SOURCE | tail -n 1)" +Bearbeiten:
-    FSTYPE="$(awk '{print $1}' <<< "$MOUNT_INFO")" +
-    MOUNT_SOURCE="$(awk '{print $2}' <<< "$MOUNT_INFO")"+
  
-    if [[ "$FSTYPE" != "cifs" || "$MOUNT_SOURCE" != "$EXPECTED_SOURCE" ]]; then +<code bash> 
-        echo "FEHLER: NAS ist nicht korrekt eingebunden." +nano ~/bin/backup_magicmirror.sh 
-        return 1 +</code>
-    fi+
  
-    return 0 +Das Script besitzt intern zwei wichtige Betriebsarten:
-}+
  
 +^ Modus ^ Verwendung ^
 +| ''--worker'' | erstellt ausschließlich das Backup; wird auch vom automatischen Weekly-Backup verwendet |
 +| ''--manual-worker'' | führt den Backup-Worker aus und meldet anschließend Erfolg oder Fehler an ioBroker |
  
-if [[ "${1:-}" == "--worker" ]]; then+Dadurch erzeugt das automatische Backup keine doppelte Telegram-Nachricht.
  
-    FINAL_DEST="$2" 
-    TEMP_DEST="${FINAL_DEST}_INCOMPLETE" 
-    ARCHIVE="$TEMP_DEST/MagicMirror.tar.gz" 
  
-    exec 9>/tmp/magicmirror-backup.lock+===== Backup starten =====
  
-    if ! flock -n 9; then +<code bash> 
-        echo "FEHLER: Es läuft bereits ein Backup." +~/bin/backup_magicmirror.sh 
-        exit 1 +</code>
-    fi+
  
-    echo "==========================================" +Das Backup läuft anschließend im Hintergrund.
-    echo "MagicMirror Backup" +
-    echo "Start:  $(date)" +
-    echo "Quelle: $SOURCE" +
-    echo "Ziel:   $FINAL_DEST" +
-    echo "=========================================="+
  
-    if ! check_nas; then 
-        echo "BACKUP ABGEBROCHEN: NAS nicht verfügbar." 
-        exit 2 
-    fi 
  
-    mkdir -p "$TEMP_DEST" || exit 3+===== Status / Log ansehen =====
  
-    echo "Erstelle Archiv ..."+<code bash> 
 +tail -f "$(ls -t ~/magicmirror-backup-logs/*.log | head -1)" 
 +</code>
  
-    tar \ +Mit ''Ctrl+C'' wird nur die Log-Anzeige beendet.
-        --create \ +
-        --gzip \ +
-        --dereference \ +
-        --exclude='MagicMirror/node_modules' \ +
-        --exclude='MagicMirror/node_modules/*' \ +
-        --exclude='*/node_modules' \ +
-        --exclude='*/node_modules/*' \ +
-        --file="$ARCHIVE" \ +
-        --directory="$HOME" \ +
-        MagicMirror+
  
-    RESULT=$?+Das Backup selbst läuft weiter.
  
-    if [[ $RESULT -ne 0 ]]; then 
-        echo "BACKUP FEHLGESCHLAGEN: tar Exit-Code $RESULT" 
-        exit "$RESULT" 
-    fi 
  
-    echo "Prüfe gzip ..."+===== Erfolgreiches Backup =====
  
-    gzip -t "$ARCHIVE" || exit 4+Ein erfolgreiches Backup enthält:
  
-    echo "Prüfe TAR ..."+<code> 
 +MagicMirror.tar.gz 
 +MagicMirror.tar.gz.sha256 
 +</code>
  
-    tar -tzf "$ARCHIVE" >/dev/null || exit 5+Das Log enthält:
  
-    echo "Erzeuge SHA-256 ..."+<code> 
 +BACKUP ERFOLGREICH 
 +</code>
  
-    ( +Zusätzlich wird über ioBroker eine Telegram-Nachricht gesendet.
-        cd "$TEMP_DEST" || exit 1 +
-        sha256sum MagicMirror.tar.gz > MagicMirror.tar.gz.sha256 +
-        sha256sum -c MagicMirror.tar.gz.sha256 +
-    ) || exit 6+
  
-    mv "$TEMP_DEST" "$FINAL_DEST" || exit 7 
  
-    echo +===== Speicherort =====
-    echo "==========================================" +
-    echo "BACKUP ERFOLGREICH" +
-    echo "Ende: $(date)" +
-    echo "Archiv: $FINAL_DEST/MagicMirror.tar.gz" +
-    du -h "$FINAL_DEST/MagicMirror.tar.gz" +
-    echo "=========================================="+
  
-    exit 0 +<code> 
-fi +/mnt/nasbackup/Manuelle_Backups/
- +
- +
-if [[ ! -d "$SOURCE" ]]; then +
-    echo "FEHLER: $SOURCE existiert nicht." +
-    exit 1 +
-fi +
- +
-echo "Prüfe NAS ..." +
- +
-if ! check_nas; then +
-    echo "BACKUP NICHT GESTARTET." +
-    echo "Es werden keine Daten lokal nach /mnt/nasbackup geschrieben." +
-    exit 1 +
-fi +
- +
-mkdir -p "$BACKUP_BASE" +
-mkdir -p "$LOGDIR" +
- +
-STAMP="$(date '+%Y-%m-%d_%H-%M-%S')" +
-DEST="$BACKUP_BASE/MagicMirror_$STAMP" +
-LOG="$LOGDIR/MagicMirror_$STAMP.log" +
- +
-echo "NAS ist erreichbar." +
-echo "Backup wird im Hintergrund gestartet." +
-echo "Ziel: $DEST" +
-echo "Log:  $LOG" +
- +
-nohup "$0" --worker "$DEST" >"$LOG" 2>&1 < /dev/null & +
- +
-echo "PID: $!" +
-echo "Log ansehen mit:" +
-echo "tail -f \"$LOG\""+
 </code> </code>
  
-Ausführbar machen:+Beispiel:
  
-<code bash> +<code> 
-chmod +x ~/bin/backup_magicmirror.sh+MagicMirror_2026-10-08_21-30-00/ 
 +├── MagicMirror.tar.gz 
 +└── MagicMirror.tar.gz.sha256
 </code> </code>
  
  
-===== Manuelles Backup starten =====+===== Backup prüfen =====
  
 <code bash> <code bash>
-~/bin/backup_magicmirror.sh +cd /mnt/nasbackup/Manuelle_Backups/MagicMirror_YYYY-MM-DD_HH-MM-SS
-</code>+
  
-Neuestes Log ansehen: +sha256sum -c MagicMirror.tar.gz.sha256
- +
-<code bash> +
-tail -f "$(ls -t ~/magicmirror-backup-logs/*.log | head -1)"+
 </code> </code>
  
-''Ctrl+C'' beendet nur die Log-Anzeige. +Erwartet:
- +
-Ein Backup ist erfolgreich, wenn im Log steht:+
  
 <code> <code>
-BACKUP ERFOLGREICH+MagicMirror.tar.gz: OK
 </code> </code>
- 
-und der Backup-Ordner **kein** ''_INCOMPLETE'' enthält. 
  
  
Zeile 778: Zeile 707:
 ====== 9. Alltag ====== ====== 9. Alltag ======
  
-===== Manuelles Backup =====+===== Manuelles Backup starten =====
  
 <code bash> <code bash>
Zeile 784: Zeile 713:
 </code> </code>
  
-===== Backup-Log =====+Bei Erfolg oder Fehler wird automatisch eine Telegram-Nachricht über ioBroker gesendet. 
 + 
 + 
 +===== Aktuelles Backup-Log =====
  
 <code bash> <code bash>
Zeile 790: Zeile 722:
 </code> </code>
  
-===== Automatische Backups ===== 
  
-Jeden Sonntag:+===== Automatisches Backup ===== 
 + 
 +Das automatische Backup läuft:
  
 <code> <code>
-01:00 Uhr+jeden Sonntag um 01:00 Uhr
 </code> </code>
  
Zeile 805: Zeile 738:
  
 aufbewahrt. aufbewahrt.
 +
 +Manuelle Backups werden dadurch nicht gelöscht.
 +
  
 ===== Timer prüfen ===== ===== Timer prüfen =====
Zeile 811: Zeile 747:
 systemctl list-timers --all | grep magicmirror systemctl list-timers --all | grep magicmirror
 </code> </code>
 +
  
 ===== NAS prüfen ===== ===== NAS prüfen =====
Zeile 817: Zeile 754:
 findmnt /mnt/nasbackup findmnt /mnt/nasbackup
 df -h /mnt/nasbackup df -h /mnt/nasbackup
 +</code>
 +
 +
 +===== Backup prüfen =====
 +
 +Im jeweiligen Backup-Verzeichnis:
 +
 +<code bash>
 +sha256sum -c MagicMirror.tar.gz.sha256
 +</code>
 +
 +Erwartet:
 +
 +<code>
 +MagicMirror.tar.gz: OK
 </code> </code>