Tests connexions existantes

Messages postés
12366
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
16 septembre 2019
-
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.”
Afficher la suite 

1 réponse

Messages postés
1430
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 septembre 2019
69
0
Merci
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

barnabe0057
Messages postés
12366
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
16 septembre 2019
2220 -
Merci pour ton aide, je vais tester cet après-midi.
Exileur
Messages postés
1430
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 septembre 2019
69 -
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
Commenter la réponse de Exileur