Il y a une liste d'adresses IP dans un fichier .txt, ex .:
1.1.1.1
2.2.2.2
3.3.3.3
Derrière chaque adresse IP, il y a un serveur et sur chaque serveur, il y a un sshd fonctionnant sur le port 22. Tous les serveurs ne figurent pas dans la known_hosts
liste (sur mon PC, Ubuntu 10.04 LTS / bash).
Comment puis-je exécuter des commandes sur ces serveurs et collecter la sortie?
Idéalement, j'aimerais exécuter les commandes en parallèle sur tous les serveurs.
Je vais utiliser l'authentification par clé publique sur tous les serveurs.
Voici quelques pièges potentiels:
- Le SSH m'invite à mettre la clé SSH des serveurs donnés à mon
known_hosts
fichier. - Les commandes données peuvent renvoyer un code de sortie différent de zéro, indiquant que la sortie est potentiellement non valide. J'ai besoin de le reconnaître.
- Une connexion peut ne pas être établie avec un serveur donné, par exemple à cause d’une erreur de réseau.
- Il devrait y avoir un délai d'expiration, au cas où la commande serait exécutée plus longtemps que prévu ou si le serveur ne fonctionnait pas pendant l'exécution de la commande.
Les serveurs sont AIX / ksh (mais je pense que cela n'a pas vraiment d'importance.