Jessaie de comprendre ce que grep -v grep fait ci-dessous:

ssh $server -p $port -o "ConnectTimeout 5" | grep -v "Connection refused" | grep "Connected to" | grep -v grep | wc -l 

Ou y a-t-il un meilleur moyen de trouver un test de connexion TCP?

Commentaires

  • Veuillez dabord consulter les pages de manuel la prochaine fois. Dans ce cas, man grep

Réponse

Il exclut toutes les lignes contenant la séquence de lettres grep de la sortie précédente du tube.

Réponse

Si vous voulez vérifier que vous pouvez établir une connexion ssh dans les 5 secondes et exécuter une commande, faites simplement:

if ssh -o BatchMode=yes -o ConnectTimeout=5 -p "$port" "$server" true; then printf "%s\n" "$server is up" fi 

Votre commande n’a pas beaucoup de sens. Comme vous ne fournissez pas de commande à exécuter sur le serveur distant, ssh s’exécutera dans le rlogin mode, où un pseudo-terminal est demandé et le shell de connexion de lutilisateur distant est lancé (ou éventuellement un ForcedCommand).

Ensuite, vous « appliquez plusieurs filtres à la sortie:

  • grep -v "Connection refused": filtrez toute ligne de la sortie qui contient Connection refused. Cela na pas de sens car ce message derreur sil apparaissait serait écrit sur stderr, pas sur la sortie standard que grep filtre, et aussi parce que:
  • grep "Connected to": sélectionnez uniquement les lignes contenant Connected to. Cela exclurait également les lignes qui contiennent Connection refused car il est peu probable quune ligne contienne les deux.
  • grep -v grep, supprimez également les lignes qui contiennent grep (il sagirait donc de lignes contenant à la fois Connected to et grep et non Connection refused!)
  • wc -l: comptez le nombre de lignes résultantes (donc les lignes dans la sortie standard de ssh « qui contient Connected to sauf ceux qui contiennent également grep ou Connection refused). Notez que wc affichera ce numéro uniquement lorsque la connexion est fermée, lorsque la session shell est terminée, comme lorsque lutilisateur entre exit . Mais là encore, puisque lutilisateur ne « verra aucune sortie (puisque tout va à wc finalement), lutilisateur naura pas la moindre idée quil a besoin dentrer exit pour mettre fin à cette session.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *