Preciso configurar alguns túneis ssh a partir de um script de shell. Eu tentei executá-los como tarefas bg usando:
#!/bin/sh
ssh -L 3000:server1:5029 me@server2 &
ssh -L 3001:server3:3306 me@server2 &
mas os túneis não parecem funcionar corretamente quando eu os inicio dessa maneira.
Eles funcionam bem quando eu os configuro manualmente em suas próprias guias, então minha próxima idéia é fazer com que o script abra novas guias no Terminal e execute os comandos como processos em primeiro plano.
Nota: esta pergunta era originalmente "Como inicio uma nova guia de terminal do shell e, em seguida, execute um comando nele?", Mas recebi duas respostas sobre como lidar com os túneis. Para a pergunta "abrindo um shell", encontrei isso no SuperUser , que funcionará, embora novas guias em segundo plano sejam preferíveis às janelas de primeiro plano que são abertas.
fonte
Respostas:
Tecnicamente, isso não é uma resposta à pergunta, mas uma resposta ao seu problema, conforme descrito. O comando ssh possui dois comutadores que podem ser úteis para você:
diz ao ssh para ficar em primeiro plano apenas o tempo suficiente para solicitar as senhas necessárias e depois se colocar em segundo plano, não executando nenhum comando remoto, mas apenas manipulando o túnel.
Se você realmente deseja que isso apareça em uma guia, convém uma solução diferente.
fonte
jobs
nemps
listas de um identificador para eles ....-f
e&
colocar o processo em segundo plano no final, poderá obter o PID$!
como um identificador para eliminar o processo de encapsulamento posteriormente no seu script.Eu sugeriria simplesmente integrar seus túneis à sua conexão "um para qualquer que seja". Você pode facilitar adicionando as entradas apropriadas ao seu
~/.ssh/config
arquivo:Você pode simplesmente fazer login executando:
Os túneis devem surgir e começar a trabalhar, deixando você com uma única instância SSH na qual fazer "qualquer coisa". Se você precisar abrir uma segunda conexão
server2
, poderá receber um erro:Isso não machuca nada além de seus olhos. Você também pode configurar esses encaminhadores para vários servidores adicionando linhas semelhantes para outros servidores, e tudo aconteceria automaticamente.
fonte