我正在通过运行shell脚本向服务器执行ssh服务,该服务器通过jenkins服务器向/tmp/san.txt中的这些服务器进行无密码验证。
jenkins@pc4mobjen01:/tmp> cat check.sh
#!/bin/bash
for i in `cat /tmp/sand.txt`
do
ssh -q mpdevops@"$i"
bash /app/home/mpdevops/sand.sh
done
jenkins@pc4mobjen01:/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
但是sand.sh存在。
mo-97df9aafa[PC19MOBDEVOPS01]:~ # cat sand.sh
for j in `cat sand.txt`
do
ssh -q mpdevops@"$j"
sudo python /tmp/test.py
done
请帮忙。
答案 0 :(得分:0)
尝试在与实际ssh命令相同的行上输入要在远程客户端上执行的命令。看起来bash命令正在本地主机上执行而不是客户端。
答案 1 :(得分:0)
您应该使用sand.sh
命令在同一行上运行ssh
:
check.sh 应为:
#!/bin/bash
for i in `cat /tmp/sand.txt`
do
ssh -q mpdevops@"$i" "bash /app/home/mpdevops/sand.sh"
done