2017-04-19 1 views
0

Je fais ssh sur des serveurs qui ont un mot de passe moins d'authentification du serveur jenkins à ces serveurs dans /tmp/san.txt en exécutant un script shell.Jenkins | ssh ne fonctionne pas

[email protected]:/tmp> cat check.sh 
#!/bin/bash 
for i in `cat /tmp/sand.txt` 
do 
ssh -q [email protected]"$i" 
bash /app/home/mpdevops/sand.sh 
done 


[email protected]:/tmp> bash check.sh 
Last login: Wed Apr 19 09:20:03 2017 from 10.4.70.42 
Powered by Monsoon (Version 2.2.1519)   Platform: suse 11.3 
Hostname  : mo-97df9aafa.dc19.saas.sap.cor Name : PC19MOBDEVOPS01 
Organization : saas_prod      Project : dc19_production 
Url   : https://monsoon.mo.sap.corp/instances/mo-97df9aafa 
mo-97df9aafa[PC19MOBDEVOPS01]:~ # logout 
bash: /app/home/mpdevops/sand.sh: No such file or directory 

Mais sand.sh est présent.

mo-97df9aafa[PC19MOBDEVOPS01]:~ # cat sand.sh 
for j in `cat sand.txt` 
do 
ssh -q [email protected]"$j" 
sudo python /tmp/test.py 
done 

Aidez-nous s'il vous plaît.

+0

I figured it out. Je devais utiliser EOF. – Sandesh

Répondre

0

Essayez d'entrer la commande à exécuter sur le client distant sur la même ligne que la commande ssh actuelle. On dirait que la commande bash est en cours d'exécution sur l'hôte local par opposition au client.

0

Vous devez exécuter sand.sh sur la même ligne avec commande ssh:

check.sh devrait être:

#!/bin/bash 
for i in `cat /tmp/sand.txt` 
do 
ssh -q [email protected]"$i" "bash /app/home/mpdevops/sand.sh" 
done