Files
agence66-nextcloud-docker/scripts/recover.sh
2025-12-16 05:09:47 +01:00

64 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# scripts/recover.sh - Script de récupération après erreur de mise à jour
set -euo pipefail
echo "🔧 Script de récupération Nextcloud"
echo ""
# 1. Arrêter tous les conteneurs
echo "⏹️ Arrêt de tous les conteneurs..."
docker-compose down --remove-orphans || {
echo "⚠️ Erreur lors de l'arrêt normal, tentative de force..."
docker-compose kill 2>/dev/null || true
docker-compose rm -f 2>/dev/null || true
}
# 2. Nettoyer les conteneurs orphelins
echo "🧹 Nettoyage des conteneurs orphelins..."
docker container prune -f
# 3. Redémarrer les services
echo "▶️ Redémarrage des services..."
if ! docker-compose up -d; then
echo "❌ Erreur lors du redémarrage"
exit 1
fi
# 4. Attendre que Nextcloud soit prêt
echo "⏳ Attente du démarrage de Nextcloud..."
for i in {1..60}; do
if docker-compose exec -T nextcloud curl -f http://localhost/status.php >/dev/null 2>&1; then
echo "✅ Nextcloud prêt"
break
fi
if [ "$i" -eq 60 ]; then
echo "❌ Timeout: Nextcloud n'est pas prêt"
echo "📋 Logs des conteneurs:"
docker-compose logs --tail=50 nextcloud
exit 1
fi
sleep 2
done
# 5. Désactiver le mode maintenance
echo "▶️ Désactivation du mode maintenance..."
if docker-compose exec -T -u www-data nextcloud php occ maintenance:mode --off; then
echo "✅ Mode maintenance désactivé"
else
echo "⚠️ Impossible de désactiver le mode maintenance"
fi
# 6. Vérifier le statut
echo ""
echo "📊 Statut final:"
docker-compose exec -T -u www-data nextcloud php occ status
echo ""
echo "✅ Récupération terminée !"
echo ""
echo "Prochaines étapes:"
echo " 1. Vérifiez que tout fonctionne: make health"
echo " 2. Consultez les logs si nécessaire: make logs"
echo " 3. Si problème persiste, restaurez le backup: make restore backups/nextcloud_backup_20251216_035002.tar.gz"