# Python fabric SSHException

**URL:** <https://www.debian-fr.org/t/python-fabric-sshexception/70223>\
**Category:** Programmation\
**Created:** [Juillet 4, 2016, 5:53 UTC](https://www.debian-fr.org/t/python-fabric-sshexception/70223 "2016-07-04T17:53:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Juillet 4, 2016, 5:53 UTC](https://www.debian-fr.org/t/python-fabric-sshexception/70223/1 "2016-07-04T17:53:26Z")

</div>

Bonjour,  
j’ai une fonction qui se connecte sur des postes distants avec le module fabric de python et qui exécute en continu des instructions, le code ressemble à ça:

```auto
while(True):
    for x in range(..):
        connecter(x) #la fonction qui utilise fabric pour se connecter sur le poste x
        run('....') #mes instructions ici
```

Alors ça fonctionne très bien sur une dizaine de postes sans soucis, le seul problème c’est si par exemple un poste s’éteint l’ensemble de la fonction plante avec une erreur:

> [@](#):
>
> raise SSHException: SSH session not active

J’aimerai bien que cette erreur soit juste ignorée mais je ne sais pas comment faire. En cherchant un peu j’ai l’impression que try puis except pourrait peut-être fonctionner?

Merci

---

<div class="post-metadata">

**Author:** ![seb-ksl](https://www.debian-fr.org/user_avatar/www.debian-fr.org/seb-ksl/32/2946_2.png) [@seb-ksl](https://www.debian-fr.org/u/seb-ksl)\
**Post date:** [Juillet 4, 2016, 7:56 UTC](https://www.debian-fr.org/t/python-fabric-sshexception/70223/2 "2016-07-04T19:56:37Z")

</div>

Oui, la syntaxe `try except` te permettra de l’intercepter et de l’ignorer (est-ce bien souhaitable ?). Tu peux aussi essayer d’opter pour une approche distribuée (threads ou autre) dans laquelle un fil ne fera pas planter l’ensemble.

---

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Juillet 4, 2016, 8:04 UTC](https://www.debian-fr.org/t/python-fabric-sshexception/70223/3 "2016-07-04T20:04:29Z")

</div>

Oui, je vais essayer les deux solutions, l’avantage des threads c’est que je vais peut-être gagner en rapidité et ça va peut-être m’arranger…

Merci

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Juillet 5, 2016, 7:39 UTC](https://www.debian-fr.org/t/python-fabric-sshexception/70223/4 "2016-07-05T07:39:38Z")

</div>

Avec try except tu peux réagir différemment en fonction de l’erreur (exception).  
Un peu de doc : [https://docs.python.org/2/tutorial/errors.html](https://docs.python.org/2/tutorial/errors.html)
