2017-09-20 1 views
0

Cette commande commande myprogram.sh dans Cygwin installé avec chocolaté, appelé à partir de la ligne de commande de Windows, avec un alias server01 créé dans le dossier .ssh, tout fonctionne très bien:Exécution Nested des lignes de commande avec ICI

# File myprogram.sh 
ssh -p 66622 [email protected] << HERE 
ssh server01 << EOF 
    command1 
    command2 
EOF 
HERE 

Parce que j'ai plusieurs serveurs, je dois construire plusieurs fichiers .sh pour différents ensembles de commandes, donc je dois créer beaucoup de .sh fichiers

Mais j'ai été incapable d'exécuter les mêmes instructions à partir d'une seule ligne de la ligne de commande. Est-ce possible, afin de faire fonctionner cette chaîne d'instructions à partir d'un même endroit?

+1

Avez-vous entendu parler de fonctions shell? – o11c

Répondre

1
#!/bin/bash 
array=(server1 server2 server3 .... serverN) 
for i in ${array[@]} 
do 
    echo ${i} 
    ssh -p 66622 [email protected]${i} "command1" 
done 

vous pouvez changer le "command1" à "command.sh"

+0

Je cherche un moyen de ne pas avoir un fichier '.sh' séparé pour chaque commande requise. – hyprfrcb

+1

vous pouvez essayer "Ansible", peut envoyer des commandes à de nombreux serveurs que vous avez définis dans le fichier hôte –