2016-10-21 2 views
-1

J'utilise un script qui, après exécution, ouvre différents onglets et se connecte à différents serveurs (en utilisant ssh). Maintenant, avec cela, je veux lancer une autre commande (disons 'pwd') .Comment faire ça?exécuter une commande dans tous les onglets ouverts dans un terminal

gnome-terminal --tab -e 'ssh [email protected]' --tab -e 'ssh [email protected]' 

Cela ouvre 2 onglets et se connecte à correspondant ssh ip.After dans chaque onglet, je veux lancer une autre commande, de sorte qu'il y aura deux onglets, et après la connexion IP, il exécutera la commande spécifiée

+0

Avez-vous essayé d'enchaîner des commandes comme celle-ci 'ssh user @ ip2 && cmd && cmd'? –

Répondre

0

Vous devez utiliser la capacité SSH d'exécuter la commande à distance, comme ceci:

gnome-terminal --tab -e "ssh -A -t [email protected] \"ssh -t [email protected] 'pwd; /bin/bash -i'\"" 

Notez le /bin/bash -i après la commande. C'est nécessaire, sinon ssh va quitter après la commande.

+0

il fonctionne mais après l'exécution de cette commande (après ssh) ** "connexion à l'utilisateur @ ip1 fermé" ** vient – rohit264

+0

et je ne veux pas déconnecter de la connexion ip – rohit264

+0

@ rohit264 Avez-vous ajouté ';/bin/bash -i' après la commande? Cela devrait suffire pour rester connecté. –

0

Utilisez ansible, fabric ou tout outil d'automatisation comme l'un de ceux-ci pour faire ce que vous voulez. Ces outils permettent d'exécuter une même commande via ssh dans plusieurs machines en même temps de manière simple.

utilisant ansible vous ne devez faire somthing comme ce

ansible <your-list-of machine> -m shell -a "your command" 

exemple

ansible ip1 -m shell -a "echo $TERM"