From b9c6122d4f84e8b27c4f9673cb3ee9093e69abab Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Tue, 16 Dec 2025 05:09:47 +0100 Subject: [PATCH] add recover script --- scripts/recover.sh | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 scripts/recover.sh diff --git a/scripts/recover.sh b/scripts/recover.sh new file mode 100755 index 0000000..6889be3 --- /dev/null +++ b/scripts/recover.sh @@ -0,0 +1,63 @@ +#!/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"