J'ai une douzaine de boîtes Linux sur lesquelles j'ai occasionnellement besoin d'exécuter la même commande. Y a-t-il un moyen plus facile (ou automatisé) de le faire en dehors de se connecter à chaque machine et d'exécuter la commande, une par une ? Ce ne sont pas les mêmes commandes tout le temps et ce n'est pas à un moment prédéfini, donc ce n'est pas quelque chose d'idéal pour des outils comme cron
.
Réponses
Trop de publicités?J'ai utilisé ClusterSSH et ça marche. Cependant, au-delà d'un certain nombre de terminaux, ça ne s'adapte pas bien.
Je suis surpris que personne n'ait mentionné xargs. Xargs est parfait pour la plupart des choses. En fait, je suis tellement à l'aise avec ça que je n'utilise plus du tout clusterssh.
Exemple
echo -n host1 host2 host3 host4|xargs -d" " -n1 -P30 -I+ ssh + "sudo service apache2 restart"
(Redémarrer apache sur tous les hôtes web.)
Si vous êtes déjà un utilisateur de tmux, vous pourriez apprécier tmux-cssh (pour TMUX-C(luster)-SSH
). Vous lui donnez une liste de noms de serveurs et il ouvre une nouvelle fenêtre tmux avec une session SSH ouverte vers chaque serveur dans sa propre fenêtre. Toutes les frappes clavier sont copiées dans chaque fenêtre. En fonction du nombre d'hôtes, la sortie peut être difficile à lire.
Utilisez dish, simple et très puissant ! Ce script a changé ma vie :) Un script pour tous les gouverner !
http://nic-nac-project.org/~drimiks/gnu/dish.shtml
La coquille diligente 'dish' exécute des commandes via ssh/rsh/telnet/mysql simultanément sur plusieurs systèmes. Changer de mot de passe, mettre à jour la configuration, copier des fichiers, vérifier l'état, etc. sur des centaines de nœuds est alors simplifié. Dish est similaire au 'dsh' d'IBM (shell distribué) mais permet en outre l'exécution à distance de commandes nécessitant une authentification. Comparé à d'autres packages open source qui incluent un shell distribué (ou des outils similaires) comme ClusterIt, le shell de danseur, shell distribué parallèle, ou C3, dish est un wrapper de shell à distance mince et facile à utiliser pour les cas où une solution flexible est nécessaire. Vous pouvez consulter la page de manuel de dish en ligne ici.