Vous pouvez utiliser l'outil expect pour exécuter des commandes sur plusieurs hôtes par lots. expect est un outil d'automatisation des interactions qui simule les entrées et les réponses des utilisateurs. Voici un exemple de script shell simple qui montre comment utiliser expect pour exécuter des commandes sur plusieurs hôtes par lots :
#!/usr/bin/expect
set username "your_username"
set password "your_password"
set command "your_command"
set hosts {
"host1" "192.168.1.1"
"host2" "192.168.1.2"
"host3" "192.168.1.3"
}
foreach {host ip} $hosts {
spawn ssh $username@$ip
expect {
"*password:" {
send "$password\r"
expect "*$ "
send "$command\r"
expect "*$ "
send "exit\r"
}
}
}
Dans le script ci-dessus, vous devez remplacer "votre_nom d'utilisateur" et "votre_mot de passe" par votre nom d'utilisateur et votre mot de passe réels. "votre_commande" est la commande à exécuter sur l'hôte.
La variable hosts est une liste contenant des noms d'hôtes et des adresses IP. Vous pouvez ajouter ou supprimer des hôtes selon vos besoins, ou charger la liste des hôtes à partir d'un autre emplacement.
La boucle foreach du script parcourt la liste des hôtes et utilise la commande spawn pour démarrer une nouvelle session ssh sur chaque hôte. La commande expect est utilisée pour faire correspondre différents scénarios d'interaction. En rencontrant " mot de passe : ", le script enverra automatiquement le mot de passe et attendra que l'invite de commande (" $ ") apparaisse. Le script envoie alors la commande à exécuter et attend à nouveau l'invite de commande. Enfin, le script envoie la commande "exit" pour quitter la session ssh.
En modifiant de manière appropriée les variables et les commandes dans le script, vous pouvez exécuter des commandes personnalisées sur plusieurs hôtes par lots.
Il convient de noter que les mots de passe et les informations sensibles doivent être manipulés avec précaution lors de l'utilisation de l'outil expect. Il est recommandé de prendre des mesures de sécurité lors de l'utilisation réelle, telles que l'utilisation de clés SSH pour l'authentification afin d'éviter le risque de divulgation du mot de passe.
J'espère que les exemples ci-dessus peuvent vous aider à comprendre comment utiliser l'outil expect pour exécuter des commandes sur plusieurs hôtes par lots. Selon les besoins réels, vous pouvez personnaliser et étendre cet exemple.