我有两个脚本。两个脚本都位于同一服务器上(服务器A)
第一个 (服务器A)与其他服务器建立 ssh 连接(服务器B),并执行第二个脚本,
例如
*script1*
ssh $ipaddress var="$var1" "bash -s" < $script2
脚本2然后执行服务器B。
有没有办法将这些组合到一个脚本中?因此,它将首先建立 ssh 连接,然后执行脚本的其余部分,例如:
#!/bin/bash
#Make an SSH Connection to another server
ssh $ipaddress
#Now Execute the rest of the script
do stuff here . . .
and here . . .
答案1
ssh $ipaddress /bin/bash <<END
do stuff here . . .
and here . . .
END
答案2
假设script2
在本地目录中
#!/bin/bash
if scp script2 $ipaddress:/tmp
then
ssh $ipaddress /tmp/script2 "arg" >& /my/result.$ipaddress
ssh $ipaddress rm /tmp/script2
fi
您将支付额外的转账费用,但如果script2
不是微不足道的(例如不仅仅是一个tail
或wc
),那么它可能是值得的。