Execução do script de shell em vários servidores

5

É possível executar uma parte do script ksh / sh em um servidor, depois o ssh em outro servidor e continuar com o restante do script? Ou há uma solução alternativa?

Eu tenho um usuário com o qual eu não tenho que autenticar cada vez que eu acesso um servidor, então eu posso pular de um servidor para outro sem qualquer interação com o teclado.

Eu já tentei isso, tentando separar algumas lógicas em outro script, então:

MYSCRIPT="nohup ksh myscript.ksh > mylog.log &"
ssh servername ${MYSCRIPT}

Eu tentei isso, mas não parece executar esse script em outro servidor.

O código inteiro acima é parte de um loop for ; Eu executo o mesmo script para uma lista de servidores.

Para fins de teste, a lista tem dois servidores; por alguma razão estranha e distorcida, apenas o último (ou segundo) script de servidor funciona como eu esperava.

Todos os servidores podem ver myscript.ksh - é visível e executável para todos eles.

    
por c0mrade 12.02.2011 / 03:09

2 respostas

3

Parece que você deseja executar uma sequência de comandos em outro servidor sem ter que fazer login várias vezes. Para conseguir isso, você poderia fazer:

local_command sequence
ssh remote-server << End-Of-File
        remote_command 1
        remote_command 2
        remote_command 3
End-Of-File

Isso executaria remote_command 1 e, quando terminasse, executaria remote_command 2 , depois remote_command 3 all no servidor remoto

    
por 12.02.2011 / 19:46
1

Para ser honesto, seu texto é um pouco vago, mas vamos traçar as possíveis causas:

O que você descreveu deve funcionar bem, mas veja ssh-copy-id source para procurar discrepâncias com seu próprio script (é um shell script incluído no OpenSSH).

Você mencionou que o comando não funciona em uma de suas máquinas, talvez o servidor tenha uma configuração diferente, evitando que o script seja iniciado em primeiro lugar.

Além disso, você mencionou a autenticação, portanto, suponho que esteja usando a autenticação de chave pública sem senha e talvez queira restringir os comandos autorizados com a chave associada: consulte man ssh , section AUTHORIZED_KEYS FILE FORMAT .

    
por 12.02.2011 / 15:55