SSH para um servidor, execute o comando update que continua mesmo após o logoff da sessão ssh

1

Ok, eu vi muitas perguntas como essa, mas quase todas têm respostas teóricas que esclarecem o conceito, mas ainda não consigo colocá-lo no código.

O que eu quero alcançar usando um script bash é, usando um loop,

  1. ssh para servidores mencionados em um arquivo (isso é feito)

  2. execute o comando update e upgrade em cada um deles.

  3. saia como o comando é emitido, mas os comandos devem continuar sendo executados no servidor.

Atualmente, com um script normal para fazer isso, posso ssh e atualizar todas as máquinas, mas em série ... isso é apenas uma máquina por vez, pois ssh sai apenas após a conclusão da atualização e atualização. com op direcionado para /dev/null para evitar operações desnecessárias na tela)

Eu vejo opções como nohup, screen / tmux para fazer isso ... mas eu não entendo como usar qualquer uma delas para alcançar o que foi dito acima!

Como posso implementar isso?

    
por Nirmik 28.09.2014 / 13:25

1 resposta

4

Prepare o script update.sh que será executado nas máquinas. Execute-o dentro de screen com ssh :

ssh user@host "screen -a -d -m -l -U /usr/local/sbin/update.sh"

Lucro. Ele executará o script de atualização na sessão de tela detached, que terminará assim que o update.sh terminar.

    
por 28.09.2014 / 13:32