Como executar um script salvo no sistema local a partir de um servidor remoto?

0

Eu quero executar um script salvo no sistema local a partir de um servidor Unix remoto para me ajudar a automatizar um processo de implantação. O script contém alguns comandos para renomear um arquivo existente no servidor Unix remoto e depois transferir um novo arquivo do sistema local para o servidor Unix.

Existe uma maneira de fazer isso?

    
por Tapan 11.03.2013 / 11:07

1 resposta

0

A ferramenta de sua escolha é ssh .
Simplesmente chame ssh user@remoteHost remoteScript para acionar a chamada no sistema local a partir do servidor unix remoto. Veja man ssh para mais detalhes.

Se o script ainda não estiver na máquina de destino, você tem duas maneiras de alcançá-lo.

via scp

function remoteCallSCP() { # <remoteAccount> <script> <interpreter> [arguments}       
   local remoteAccount=${1}
   local script=${2}
   shift scriptRunner=${3} 
   shift 3 # script arguments are following
   local tmpFile=$(mktemp) # not perfect, but 99% good
   scp ${script} ${remoteAccount}:${tmpFile} # executable bit is lost
   ssh ${remoteAccount} ${scriptRunner} ${tmpFile} 

}

via ssh e stdin

 function remoteCallStdIn() { # <remoteAccount> <script>
     local remoteAccount=${1}
     local script=${2}
     ssh -T ${remoteAccount}  <${script}
}

A opção -T desabilita a alocação pseudo-tty. O que pode ajudar a corrigir alguns problemas estranhos.

Os seguintes recursos estão faltando aqui:

  • O script deve ser um script de shell compatível com o shell padrão da conta remota.
  • Os argumentos da linha de comando não estão funcionando.

Como uma solução alternativa sustentável, você pode pensar em scripts gerados como entrada, que contêm interpretador e argumentos.

    
por 11.03.2013 / 11:57