diff --git a/deploy.sh b/deploy.sh index 541fcfc..b128c63 100644 --- a/deploy.sh +++ b/deploy.sh @@ -8,50 +8,11 @@ DOMAIN="zapwall.fr" APP_DIR="/var/www/${DOMAIN}" GIT_REPO="https://git.4nkweb.com/4nk/story-research-zapwall.git" -# Configuration SSH pour connexion persistante (évite MaxStartups) -# Utiliser un chemin temporaire sans espaces pour ControlPath -SSH_CONTROL_DIR="/tmp/ssh_control_$$" -mkdir -p "${SSH_CONTROL_DIR}" -SSH_CONTROL_PATH="${SSH_CONTROL_DIR}/debian_92.243.27.35_22" - -# Fonction pour nettoyer une connexion SSH morte -cleanup_dead_ssh() { - # Essayer de fermer proprement la connexion si elle existe - if [ -S "${SSH_CONTROL_PATH}" ]; then - ssh -O exit -o ControlPath="${SSH_CONTROL_PATH}" ${SERVER} 2>/dev/null || true - # Attendre un peu pour que la fermeture se termine - sleep 0.5 - fi - # Forcer la suppression du socket et du répertoire parent - # Supprimer le répertoire entier garantit que le socket est vraiment supprimé - rm -rf "${SSH_CONTROL_DIR}" 2>/dev/null || true - # Recréer le répertoire pour les prochaines connexions - mkdir -p "${SSH_CONTROL_DIR}" 2>/dev/null || true -} - -# Fonction pour exécuter une commande SSH avec connexion persistante +# Fonction pour exécuter une commande SSH ssh_exec() { - # Laisser SSH gérer ControlMaster automatiquement - # ControlMaster=auto va : - # - Créer une nouvelle connexion maître si le socket n'existe pas - # - Réutiliser la connexion existante si le socket est valide - # - Détecter si le socket est invalide et créer une nouvelle connexion (mais laisse le socket mort) - # Pour éviter l'accumulation de sockets morts, on nettoie le répertoire au début de chaque déploiement - # et on laisse SSH gérer le reste automatiquement - ssh -o ControlMaster=auto \ - -o ControlPath="${SSH_CONTROL_PATH}" \ - -o ControlPersist=300 \ - -o ConnectTimeout=10 \ - ${SERVER} "$@" 2>&1 + ssh -o ConnectTimeout=10 ${SERVER} "$@" 2>&1 } -# Nettoyer les connexions SSH persistantes et le répertoire temporaire à la fin -cleanup_ssh() { - cleanup_dead_ssh - rm -rf "${SSH_CONTROL_DIR}" 2>/dev/null || true -} -trap cleanup_ssh EXIT - # Vérifier qu'un message de commit est fourni if [ -z "$1" ]; then echo "Erreur: Un message de commit est requis"