Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:backup

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ubuntu:backup [2026/04/12 10:45] – [Typische Fehlerquellen] franzubuntu:backup [2026/04/12 10:52] (aktuell) – [Skript anlegen] franz
Zeile 1: Zeile 1:
 ====== Backup ====== ====== Backup ======
  
-=====   Rsnapshot   =====+===== Rsnapshot =====
  
 ist ein einfach zu bedienendes Backupprogramm. [[https://wiki.ubuntuusers.de/rsnapshot/|Rsnapsho]]t hasiert auf rsync, es ist einfach zu bedienen und eignet sich sehr gut für Backups auf USB Festplatten.\\ ist ein einfach zu bedienendes Backupprogramm. [[https://wiki.ubuntuusers.de/rsnapshot/|Rsnapsho]]t hasiert auf rsync, es ist einfach zu bedienen und eignet sich sehr gut für Backups auf USB Festplatten.\\
Zeile 140: Zeile 140:
 </code> </code>
  
-===== Rsnapshot-Tagessicherung mit Überwachung und Fehlermail =====+===== rsnapshot-Tagessicherung mit Überwachung und Fehlermail =====
  
 +==== Ziel ====
  
 +Die tägliche ''rsnapshot''-Sicherung soll automatisch gestartet und überwacht werden.\\
 +Wenn die Sicherung fehlschlägt oder bereits ein Sicherungslauf aktiv ist, soll automatisch eine E-Mail an ''webmaster@waldhofer.com'' gesendet werden.
  
 +Die Lösung verwendet ein Shell-Skript mit:
  
 +* Start der Tagessicherung\\
 +* Protokollierung in eine Logdatei\\
 +* Fehlererkennung über den Rückgabecode\\
 +* Mailversand im Fehlerfall\\
 +* Sperre gegen Doppelstarts mit ''flock''
  
 +----
  
 +==== Wichtiger Hinweis ====
  
 +Die Tagessicherung ist bereits im Skript integriert.\\
 +Es ist **kein zusätzlicher Cronjob für ''rsnapshot daily'' ** notwendig.
  
 +Das Skript enthält den eigentlichen Sicherungsaufruf:
  
 +<code bash>
 +usr/bin/rsnapshot daily>> "$LOGFILE" 2>&1
  
  
 +</code>
 +
 +Es genügt daher **ein einziger Cronjob**, der nur das Überwachungsskript startet.
 +
 +----
 +
 +
 +==== Warum ''flock'' verwenden? ====
 +
 +Mit ''flock'' wird verhindert, dass ein zweiter Sicherungslauf startet, wenn der erste noch aktiv ist.
 +
 +Vorteile:
 +
 +* keine Doppelstarts\\
 +* saubere Sperrlogik\\
 +* robust unter Ubuntu\\
 +* besser als einfache selbst gebaute PID-/Lockfile-Prüfungen
 +
 +----
 +
 +==== Skript anlegen ====
 +
 +Datei erstellen:
 +
 +<code bash>
 +sudo nano /usr/local/bin/rsnapshot_daily_monitor.sh
 +
 +
 +</code>
 +
 +Inhalt:
 +
 +<code bash>
 +#!/bin/bash
 +
 +set -u
 +
 +LOGFILE="/var/log/rsnapshot_daily.log"\
 +MAILTO="webmaster@domain.at"\
 +HOSTNAME="$(hostname -f 2>/dev/null || hostname)"\
 +LOCKFILE="/var/run/rsnapshot_daily.lock"
 +
 +send_error_mail() {\
 +  local subject="$1"\
 +  local body="$2"
 +
 +  /usr/sbin/sendmail "$MAILTO" <<EOF\
 +Subject: $subject\
 +From: root@$HOSTNAME\
 +To: $MAILTO
 +
 +$body\
 +EOF\
 +}
 +
 +{\
 +  flock -n 9 || {\
 +      DATE_NOW="$(date '+%Y-%m-%d %H:%M:%S')"\
 +      echo "==== $DATE_NOW LOCK AKTIV: rsnapshot daily laeuft bereits ====">> "$LOGFILE"\
 +      send_error_mail \
 +          "[FEHLER] rsnapshot bereits aktiv auf $HOSTNAME" \
 +          "Der rsnapshot-Job wurde nicht gestartet, weil bereits ein Lauf aktiv ist.
 +
 +Host: $HOSTNAME\
 +Zeit: $DATE_NOW\
 +Lockdatei: $LOCKFILE\
 +Logdatei: $LOGFILE"\
 +      exit 1\
 +  }
 +
 +  DATE_NOW="$(date '+%Y-%m-%d %H:%M:%S')"\
 +  echo "==== Start rsnapshot daily: $DATE_NOW ====">> "$LOGFILE"
 +
 +  /usr/bin/rsnapshot daily>> "$LOGFILE" 2>&1\
 +  RETVAL=$?
 +
 +  DATE_END="$(date '+%Y-%m-%d %H:%M:%S')"
 +
 +  if [ $RETVAL -eq 0 ]; then\
 +      echo "==== Ende rsnapshot daily erfolgreich: $DATE_END ====">> "$LOGFILE"\
 +  else\
 +      echo "==== Ende rsnapshot daily FEHLER ($RETVAL): $DATE_END ====">> "$LOGFILE"\
 +      send_error_mail \
 +          "[FEHLER] rsnapshot Backup auf $HOSTNAME" \
 +          "Die rsnapshot-Sicherung ist fehlgeschlagen.
 +
 +Host: $HOSTNAME\
 +Zeit: $DATE_END\
 +Rueckgabecode: $RETVAL\
 +Logdatei: $LOGFILE
 +
 +Die letzten 50 Zeilen aus dem Log:
 +
 +$(tail -n 50 "$LOGFILE")"\
 +  fi
 +
 +  exit $RETVAL\
 +} 9>"$LOCKFILE"\
 +
 +
 +</code>
 +
 +----
 +
 +
 +==== Skript ausführbar machen ====
 +
 +<code bash>
 +sudo chmod +x /usr/local/bin/rsnapshot_daily_monitor.sh
 +
 +
 +</code>
 +
 +----
 +
 +
 +==== Cronjob einrichten ====
 +
 +Root-Crontab bearbeiten:
 +
 +<code bash>
 +sudo crontab -e
 +
 +
 +</code>
 +
 +Eintrag hinzufügen:
 +
 +<code>
 +0 1 * * * /usr/local/bin/rsnapshot_daily_monitor.sh
 +
 +</code>
 +
 +Damit wird jeden Tag um 01:00 Uhr:
 +
 +* das Skript gestartet\\
 +* die Tagessicherung ausgeführt\\
 +* das Ergebnis protokolliert\\
 +* im Fehlerfall eine Mail versendet
 +
 +----
 +
 +
 +==== Wichtige Regel ====
 +
 +Ein alter direkter Cronjob mit ''rsnapshot daily'' darf **nicht zusätzlich** aktiv sein.
 +
 +Also **nicht beides gleichzeitig**:
 +<code>
 +0 1 * * * /usr/bin/rsnapshot daily\
 +0 1 * * * /usr/local/bin/rsnapshot_daily_monitor.sh
 +
 +</code>
 +
 +Richtig ist nur:
 +
 +<code>
 +0 1 * * * /usr/local/bin/rsnapshot_daily_monitor.sh
 +
 +</code>
 +
 +----
 +
 +
 +==== Funktion testen ====
 +
 +Skript manuell starten:
 +
 +<code bash>
 +sudo /usr/local/bin/rsnapshot_daily_monitor.sh
 +echo $?
 +
 +
 +</code>
 +
 +Bedeutung:
 +
 +* ''0'' = Sicherung erfolgreich\\
 +* ''1'' oder anderer Wert ungleich ''0'' = Fehler erkannt
 +
 +Logdatei ansehen:
 +
 +<code bash>
 +sudo tail -n 50 /var/log/rsnapshot_daily.log
 +
 +
 +</code>
 +
 +----
 +
 +
 +==== rsnapshot separat prüfen ====
 +
 +Falls das Skript Fehler liefert, zuerst ''rsnapshot'' selbst testen:
 +
 +Konfiguration prüfen:
 +
 +<code bash>
 +sudo /usr/bin/rsnapshot configtest
 +echo $?
 +
 +
 +</code>
 +
 +Tagessicherung direkt starten: sudo/usr/bin/rsnapshot daily\ echo$?\
 +
 +----
 +
 +
 +==== Mailversand testen ====
 +
 +Testmail senden:
 +
 +<code bash>
 +echo -e "Subject: Testmail\n\nDas ist ein Test." | sudo /usr/sbin/sendmail webmaster@domain.at
 +
 +
 +</code>
 +
 +Wenn die Mail ankommt, funktioniert der Versand über ''ssmtp'' bzw. ''sendmail''.
 +
 +----
 +
 +
 +==== Logdatei ====
 +
 +Die Logdatei ist:
 +
 +<code>
 +/var/log/rsnapshot_daily.log
 +
 +</code>
 +
 +Dort stehen unter anderem:
 +
 +* Startzeit des Sicherungslaufs\\
 +* Ende des Sicherungslaufs\\
 +* Erfolg oder Fehler\\
 +* eventuelle Fehlermeldungen von ''rsnapshot''
 +
 +----
 +
 +
 +==== Typische Fehlerquellen ====
 +
 +* Fehler in ''/etc/rsnapshot.conf''\\
 +* Zielverzeichnis nicht erreichbar\\
 +* fehlende Berechtigungen\\
 +* zu wenig Speicherplatz\\
 +* SSH-Probleme bei entfernten Sicherungszielen\\
 +* fehlerhafte Mail-Konfiguration\\
 +* bereits laufender zweiter Sicherungsjob
  
 +----
  
 ==== Zusammenfassung ==== ==== Zusammenfassung ====
ubuntu/backup.1775983546.txt.gz · Zuletzt geändert: von franz

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki