ssh $ipaddress /bin/bash <<END
do stuff here . . .
and here . . .
END
Eu tenho dois scripts. Ambos os scripts estão no mesmo servidor ( serverA )
O primeiro ( serverA ) estabelece uma conexão ssh com o outro servidor ( serverB ) e executa o segundo script,
por exemplo
*script1*
ssh $ipaddress var="$var1" "bash -s" < $script2
Em seguida, script2 é executado em serverB .
Existe uma maneira de combinar isso em um script? Por isso, começaria fazendo a conexão ssh, depois executaria o resto do script, algo como:
#!/bin/bash
#Make an SSH Connection to another server
ssh $ipaddress
#Now Execute the rest of the script
do stuff here . . .
and here . . .
ssh $ipaddress /bin/bash <<END
do stuff here . . .
and here . . .
END
assumindo script2
no diretório local
#!/bin/bash
if scp script2 $ipaddress:/tmp
then
ssh $ipaddress /tmp/script2 "arg" >& /my/result.$ipaddress
ssh $ipaddress rm /tmp/script2
fi
você pagará uma transferência extra, mas se script2
não for trivial (por exemplo, não apenas um tail
ou wc
), pode valer a pena.
Tags ssh shell-script