Benutzer-Werkzeuge

Webseiten-Werkzeuge


server:nextcloud:backup:scripte:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
server:nextcloud:backup:scripte:start [2026/05/22 21:14] 91.115.85.221server:nextcloud:backup:scripte:start [2026/06/22 09:36] (aktuell) 192.164.3.17
Zeile 1: Zeile 1:
 ====== Skripte ====== ====== Skripte ======
  
-TBD+Der Backup‑Prozess wird durch zwei Skripte realisiert die im Verzeichnis //**/usr/local/bin/**// liegen. Das Skript **run_nextcloud_backup.sh** wird in regelmäßigen Intervallen vom //Cron‑Job// gestartet. Es ruft anschließend **nextcloud_backup.sh** mit den erforderlichen Parametern auf und erhält von diesem eine Rückmeldung über Erfolg oder Fehlschlag des Backups. Diese Statusmeldung wird anschließend per E‑Mail an **eugen@hoeglinger.name** weitergeleitet. 
 + 
 +Das Skript **run_nextcloud_backup.sh**, welches vom //Cron-Job// aufgerufen wird. 
 + 
 +<code bash>#!/bin/bash 
 + 
 +# ============================================ 
 +# Einstellungen 
 +# ============================================ 
 +MAIL_TO="eugen@hoeglinger.name" 
 +MAIL_SUBJECT_SUCCESS="Nextcloud Backup erfolgreich" 
 +MAIL_SUBJECT_FAIL="Nextcloud Backup FEHLGESCHLAGEN" 
 +LOGFILE="/var/log/nextcloud_backup.log" 
 + 
 +# ============================================ 
 +# Backup-Skript ausführen 
 +# ============================================ 
 +/usr/local/bin/nextcloud_backup.sh 
 +EXIT_CODE=$? 
 + 
 +# ============================================ 
 +# Ergebnis prüfen und E-Mail senden 
 +# ============================================ 
 +if [ $EXIT_CODE -eq 0 ]; then 
 +    MESSAGE="Das Nextcloud Backup wurde erfolgreich abgeschlossen. 
 + 
 +Zeit: $(date) 
 +Exit-Code: $EXIT_CODE 
 + 
 +Details siehe Logfile: $LOGFILE 
 +
 +    echo "$MESSAGE" | mail -s "$MAIL_SUBJECT_SUCCESS" "$MAIL_TO" 
 +    echo "$(date) - Backup erfolgreich." >> "$LOGFILE" 
 +else 
 +    MESSAGE="Das Nextcloud Backup ist FEHLGESCHLAGEN. 
 + 
 +Zeit: $(date) 
 +Exit-Code: $EXIT_CODE 
 + 
 +Bitte überprüfe das Backup-Skript und die Systemlogs. 
 +Details siehe Logfile: $LOGFILE 
 +
 +    echo "$MESSAGE" | mail -s "$MAIL_SUBJECT_FAIL" "$MAIL_TO" 
 +    echo "$(date) - Backup FEHLGESCHLAGEN mit Exit-Code $EXIT_CODE." >> "$LOGFILE" 
 +fi 
 + 
 +exit $EXIT_CODE</code> 
 + 
 + 
 +Das Skript **nextcloud_backup.sh**, welches vom Skript //**run_nextcloud_backup.sh**// aufgerufen wird. 
 + 
 +<code bash>#!/bin/bash 
 + 
 +# Verzeichnisse und Datenbank-Details 
 +CONFIG_DIR="/var/www/nextcloud/config" 
 +DATA_DIR="/mnt/dataSSD/nextcloud/data" 
 +DB_NAME="nextcloud" 
 +DB_USER="nextclouduser" 
 +DB_PASS="pfmipLkHGKoBlE23" 
 +BACKUP_DIR="/mnt/backupUSB/backup/nextcloud/" 
 +MOUNT_POINT="/mnt/backupUSB" 
 + 
 +# ============================================ 
 +# Schritt 0: Prüfen, ob Backup-Medium gemountet ist 
 +# ============================================ 
 + 
 +if ! mountpoint -q "$MOUNT_POINT"; then 
 +    echo "FEHLER: Backup-Medium ist NICHT gemountet: $MOUNT_POINT" 
 +    exit 2 
 +fi 
 + 
 +# ============================================ 
 +# Schritt 1: Prüfen, ob bereits 3 Sicherungen existieren 
 +# ============================================ 
 + 
 +BACKUPS=($(ls -1 "$BACKUP_DIR" | sort)) 
 +COUNT=${#BACKUPS[@]} 
 + 
 +if [ "$COUNT" -ge 3 ]; then 
 +    OLDEST="${BACKUPS[0]}" 
 +    echo "Es existieren bereits 3 Sicherungen. Lösche älteste: $OLDEST" 
 +    rm -rf "$BACKUP_DIR/$OLDEST" 
 +fi 
 + 
 +# ============================================ 
 +# Schritt 2: Neue Sicherung erstellen 
 +# ============================================ 
 + 
 +# Datum und Zeit für die Sicherung 
 +TIMESTAMP=$(date +"%Y%m%d%H%M%S"
 + 
 +# Sicherungsverzeichnisse erstellen 
 +mkdir -p "$BACKUP_DIR/$TIMESTAMP" 
 + 
 +# Konfiguration sichern 
 +tar -czf $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz -C $CONFIG_DIR . 
 + 
 +# Daten sichern 
 +tar -czf $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz -C $DATA_DIR . 
 + 
 +# Datenbank sichern 
 +mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql 
 + 
 +# Sicherung überprüfen 
 +if [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz ] && \ 
 +   [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz ] && \ 
 +   [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql ]; then 
 +    echo "Sicherung erfolgreich erstellt." 
 +else 
 +    echo "Sicherung fehlgeschlagen." 
 +    exit 1 
 +fi 
 + 
 +# ============================================ 
 +# Schritt 3: Integrität der Archive überprüfen 
 +# ============================================ 
 + 
 +# Integrität der Archive überprüfen 
 +if tar -tzf $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz >/dev/null && \ 
 +   tar -tzf $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz >/dev/null; then 
 +    echo "Archive sind intakt." 
 +else 
 +    echo "Archive sind beschädigt." 
 +    exit 1 
 +fi 
 + 
 +# Datenbank-Dump überprüfen 
 +if grep -q "Dump completed" $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql; then 
 +    echo "Datenbank-Dump ist vollständig." 
 +else 
 +    echo "Datenbank-Dump ist unvollständig." 
 +    exit 1 
 +fi 
 + 
 +echo "Backup abgeschlossen. Es existieren nun maximal 3 Sicherungen." 
 + 
 +exit 0</code>
server/nextcloud/backup/scripte/start.1779484462.txt.gz · Zuletzt geändert: von 91.115.85.221