40 votes

Linux - Exécuter la même commande sur plusieurs machines en même temps

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.

8voto

sashaeve Points 3002

Ansible a la capacité d'exécuter des commandes ad hoc et est également extensible pour gérer entièrement la configuration. La capacité de faire correspondre en fonction des groupes est excellente.

http://docs.ansible.com/intro_adhoc.html

6voto

Junfeng Points 361

Je suppose que je vais copier et coller ma réponse de Stack Overflow, que les gens semblaient apprécier. . .


La question de comment exécuter des commandes sur de nombreux serveurs en même temps est apparue sur une liste de diffusion Perl l'autre jour et je vais donner la même recommandation que j'ai donnée là-bas, qui est d'utiliser gsh: http://outflux.net/unix/software/gsh

gsh est similaire à la solution "for box in box1_name box2_name box3_name" déjà donnée mais je trouve gsh plus pratique. Vous configurez un fichier /etc/ghosts contenant vos serveurs dans des groupes comme web, db, RHEL4, x86_64, ou autre (man ghosts) puis vous utilisez ce groupe lorsque vous appelez gsh.

[pdurbin@beamish ~]$ gsh web "cat /etc/redhat-release; uname -r"
www-2.foo.com: Red Hat Enterprise Linux AS release 4 (Nahant Update 7)
www-2.foo.com: 2.6.9-78.0.1.ELsmp
www-3.foo.com: Red Hat Enterprise Linux AS release 4 (Nahant Update 7)
www-3.foo.com: 2.6.9-78.0.1.ELsmp
www-4.foo.com: Red Hat Enterprise Linux Server release 5.2 (Tikanga)
www-4.foo.com: 2.6.18-92.1.13.el5
www-5.foo.com: Red Hat Enterprise Linux Server release 5.2 (Tikanga)
www-5.foo.com: 2.6.18-92.1.13.el5
[pdurbin@beamish ~]$

Vous pouvez également combiner ou diviser des groupes ghosts, en utilisant web+db ou web-RHEL4, par exemple.

Je mentionnerai également que bien que je n'aie jamais utilisé shmux, son site web contient une liste de logiciels (y compris gsh) qui vous permettent d'exécuter des commandes sur de nombreux serveurs en même temps. Capistrano a déjà été mentionné et (d'après ce que je comprends) pourrait également être sur cette liste.

5voto

Konerak Points 5505

Si vous êtes sur un bureau KDE, konsole a l'option "Envoyer l'entrée à toutes les sessions". Elle s'applique à toutes les sessions ouvertes dans la même fenêtre konsole.

5voto

Bhaskar Points 1017

Vous pourriez également essayer ssh [utilisateur@]nom_hôte [commande] et ensuite parcourir les noms d'hôte.

4voto

Stick Points 658

Jetez également un coup d'œil à func. Func vous permet d'utiliser une architecture de module pour contrôler différents aspects d'un système, de la gestion des packages à l'exécution des commandes, etc. Il fonctionne sur un module client/serveur via SSL et dispose d'un système d'authentification assez flexible également.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X