nextcloud_sichern_scripte/nectcloud_backup.sh
2024-11-19 18:08:36 +01:00

65 lines
1.7 KiB
Bash

#!/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