#!/bin/bash # Verzeichnisse und Datenbank-Details CONFIG_DIR="/var/www/nextcloud/config" DATA_DIR="/mnt/nvmedrv/nextcloud/data" DB_NAME="nextcloud_db" DB_USER="nextcloud_user" DB_PASS="your_password" BACKUP_DIR="/path/to/backup" RETENTION_DAYS=21 # 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 # 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 # Alte Sicherungen löschen find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \; echo "Alte Sicherungen gelöscht." exit 0