improve Makefile and secure bash scripts
This commit is contained in:
76
scripts/restore.sh
Normal file → Executable file
76
scripts/restore.sh
Normal file → Executable file
@@ -120,36 +120,8 @@ if ! docker-compose exec -T db sh -c "MYSQL_PWD=\"\$MYSQL_PASSWORD\" mysql \
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Restaurer les fichiers
|
||||
echo "📁 Restauration des fichiers..."
|
||||
|
||||
# Vérifier et créer les répertoires si nécessaire
|
||||
mkdir -p ./data/config ./data/data
|
||||
|
||||
if ! tar -xzf "$TEMP_DIR/$BACKUP_DIR/config.tar.gz" -C ./data/config; then
|
||||
echo "❌ Erreur lors de la restauration de la configuration"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Restaurer les données si elles existent dans l'archive
|
||||
if [ -f "$TEMP_DIR/$BACKUP_DIR/data.tar.gz" ]; then
|
||||
if ! tar -xzf "$TEMP_DIR/$BACKUP_DIR/data.tar.gz" -C ./data/data; then
|
||||
echo "❌ Erreur lors de la restauration des données"
|
||||
exit 1
|
||||
fi
|
||||
elif [ -d "$TEMP_DIR/$BACKUP_DIR/data" ]; then
|
||||
# Si les données sont dans un dossier (backup rsync)
|
||||
rsync -a "$TEMP_DIR/$BACKUP_DIR/data/" ./data/data/
|
||||
fi
|
||||
|
||||
# Restaurer les apps personnalisées si présentes
|
||||
if [ -f "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" ]; then
|
||||
mkdir -p ./data/custom_apps
|
||||
tar -xzf "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" -C ./data/custom_apps
|
||||
fi
|
||||
|
||||
# Redémarrer
|
||||
echo "▶️ Redémarrage des services..."
|
||||
# Redémarrer tous les services d'abord
|
||||
echo "▶️ Démarrage des services..."
|
||||
docker-compose up -d
|
||||
|
||||
# Attendre que Nextcloud soit prêt
|
||||
@@ -160,15 +132,49 @@ for i in {1..60}; do
|
||||
break
|
||||
fi
|
||||
if [ "$i" -eq 60 ]; then
|
||||
echo "⚠️ Warning: Nextcloud met du temps à démarrer, on continue..."
|
||||
break
|
||||
echo "❌ Timeout: Nextcloud n'est pas prêt"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Réparer et scanner
|
||||
# Restaurer les fichiers via le container pour éviter les problèmes de permissions
|
||||
echo "📁 Restauration des fichiers..."
|
||||
|
||||
# Restaurer la configuration
|
||||
if ! docker-compose exec -T -u www-data nextcloud tar -xzf - -C /var/www/html/config < "$TEMP_DIR/$BACKUP_DIR/config.tar.gz"; then
|
||||
echo "❌ Erreur lors de la restauration de la configuration"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Restaurer les données
|
||||
if [ -f "$TEMP_DIR/$BACKUP_DIR/data.tar.gz" ]; then
|
||||
echo "📦 Restauration des données utilisateurs..."
|
||||
if ! docker-compose exec -T -u www-data nextcloud tar -xzf - -C /var/www/html/data < "$TEMP_DIR/$BACKUP_DIR/data.tar.gz"; then
|
||||
echo "❌ Erreur lors de la restauration des données"
|
||||
exit 1
|
||||
fi
|
||||
elif [ -d "$TEMP_DIR/$BACKUP_DIR/data" ]; then
|
||||
echo "⚠️ Format de backup rsync détecté, copie manuelle nécessaire"
|
||||
echo " Utilisez: docker cp pour copier $TEMP_DIR/$BACKUP_DIR/data/ vers le container"
|
||||
fi
|
||||
|
||||
# Restaurer les apps personnalisées si présentes
|
||||
if [ -f "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" ]; then
|
||||
echo "📦 Restauration des apps personnalisées..."
|
||||
docker-compose exec -T -u www-data nextcloud tar -xzf - -C /var/www/html/custom_apps < "$TEMP_DIR/$BACKUP_DIR/apps.tar.gz" || echo "ℹ️ Pas d'apps à restaurer"
|
||||
fi
|
||||
|
||||
# Réparer
|
||||
echo "🔧 Réparation..."
|
||||
docker-compose exec -u www-data nextcloud php occ maintenance:repair || echo "⚠️ Erreur lors de la réparation"
|
||||
docker-compose exec -u www-data nextcloud php occ files:scan --all || echo "⚠️ Erreur lors du scan"
|
||||
docker-compose exec -T -u www-data nextcloud php occ maintenance:repair || echo "⚠️ Erreur lors de la réparation"
|
||||
|
||||
# Désactiver le mode maintenance avant le scan
|
||||
echo "▶️ Désactivation du mode maintenance..."
|
||||
docker-compose exec -T -u www-data nextcloud php occ maintenance:mode --off || echo "⚠️ Impossible de désactiver le mode maintenance"
|
||||
|
||||
# Scanner les fichiers
|
||||
echo "🔍 Scan des fichiers..."
|
||||
docker-compose exec -T -u www-data nextcloud php occ files:scan --all || echo "⚠️ Erreur lors du scan"
|
||||
|
||||
echo "✅ Restauration terminée !"
|
||||
|
||||
Reference in New Issue
Block a user