add scripts
This commit is contained in:
70
scripts/restore.sh
Normal file
70
scripts/restore.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/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 !"
|
||||
Reference in New Issue
Block a user