Tests connexions existantes

Bonjour,

Voilà le script en question : https://pastebin.com/uYzC6AtM

Le script récupère une adresse ip dans un pastebin puis teste si une connexion SSH existe, puis passe au pastebin suivant.

Si la connexion n'existe pas j'incrémente une variable $status (test à un instant T puis un autre test à T+30).

Si les 2 tests ont échoués (status=2), je supprime le pastebin.

Maintenant j'en viens à mon problème : si je dois traiter 10 pastebins je dois pour chacun attendre 30 secondes entre les 2 tests, j'aimerais traiter tous les pastebins d'un coup, puis 30 secondes plus tard les re-traiter tous.

Je pense qu'il me faudrait une variable $status personnalisée pour chaque pastebin, une variable avec un index, mais je ne sais pas faire ça.

Merci beaucoup pour l'aide apportée.

Configuration: Win 7 Pro SP1 64bits
Athlon X4 750K Quad Core
8 Go DDR3 1866 Mhz



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Je ferais qq chose du genre :
    en début de code tu définis une liste qui servira a stocker les ips à retry;
    list=

    Ensuite quand tu fais ton premier test, en cas de fail, tu ajoutes l'ip à ta 'liste'
    ss -nt4 | grep ":22 " | grep "$ip" || { status=$((status+1)) && list="${list} ${ip}"  } 

    et tu refais une boucle aprés sur la liste.
    for ip in $list; do ss -nt4 | grep ":22 " | grep "$ip" || { status=$((status+1)) && echo "Second test échoué"  }; done

    1. Merci pour ton aide, je vais tester cet après-midi.
    2. sinon tu utilises les arrays :
      list=()
      ss -nt4 | grep ":22 " | grep "$ip" || { status=$((status+1)) && list+=($ip ) }
      for ip in "${list[@]}"
      do
      echo $ip
      done