65 lines
1.7 KiB
Bash
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|