Files
agence66-nextcloud-docker/scripts/restore.sh
2025-12-14 22:26:17 +01:00

71 lines
1.6 KiB
Bash

#!/bin/bash
# scripts/restore.sh - Restauration d'un backup
set -e
if [ -z "$1" ]; then
echo "Usage: $0 <backup_file.tar.gz>"
exit 1
fi
BACKUP_FILE="$1"
if [ ! -f "$BACKUP_FILE" ]; then
echo "❌ Fichier introuvable: $BACKUP_FILE"
exit 1
fi
echo "⚠️ ATTENTION: Cette opération va écraser les données actuelles !"
read -p "Continuer? (yes/no): " confirm
if [ "$confirm" != "yes" ]; then
echo "Annulé."
exit 0
fi
# Extraire le backup
TEMP_DIR=$(mktemp -d)
echo "📂 Extraction vers $TEMP_DIR..."
tar -xzf "$BACKUP_FILE" -C "$TEMP_DIR"
BACKUP_DIR=$(ls -1 "$TEMP_DIR" | head -n1)
# Arrêter les services
echo "⏹️ Arrêt des services..."
docker-compose down
# Restaurer la base de données
echo "💾 Restauration de la base de données..."
docker-compose up -d db
sleep 10
docker-compose exec -T db mysql \
-u"$MYSQL_USER" \
-p"$MYSQL_PASSWORD" \
"$MYSQL_DATABASE" \
< "$TEMP_DIR/$BACKUP_DIR/database.sql"
# Restaurer les fichiers
echo "📁 Restauration des fichiers..."
tar -xzf "$TEMP_DIR/$BACKUP_DIR/config.tar.gz" -C ./data/config
tar -xzf "$TEMP_DIR/$BACKUP_DIR/data.tar.gz" -C ./data/data
if [ -f "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" ]; then
tar -xzf "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" -C ./data/custom_apps
fi
# Redémarrer
echo "▶️ Redémarrage des services..."
docker-compose up -d
# Réparer et scanner
echo "🔧 Réparation..."
sleep 30
docker-compose exec -u www-data nextcloud php occ maintenance:repair
docker-compose exec -u www-data nextcloud php occ files:scan --all
# Nettoyer
rm -rf "$TEMP_DIR"
echo "✅ Restauration terminée !"