Script shell para criar conexão SSH em segundo plano, se não existir

3

Existe uma pergunta muito semelhante a presente , mas existe uma detalhes extras que tenho na minha situação.

Basicamente eu estou usando um ControlMaster para acelerar as conexões SSH. Então estou usando:

CurrentUser=$(whoami)
session=$(ps -el | grep $(id -u) |sed -e 's/sshd//g'| grep ssh)
if [ "$session" = "" ]
then
        ssh -TMNf [email protected] &
fi

Depois desse código, eu tenho outro comando. A finalidade do comando ssh é unicamente executar em segundo plano para manter um soquete aberto para conexões mais rápidas (se nenhuma chamada ocorrer por um curto período de tempo, ela expirará e fechará devido à inatividade).

O problema é que este script não fecha e retorna ao chamador. Torna-se um < defunto > processo, e não retorna até que eu mate manualmente a sessão ssh criada. Como posso deixar o script retornar ao chamador e ter o ssh criado em segundo plano?

Editar: Eu quero que a sessão ssh criada persista depois que o script terminar para manter um soquete aberto para conexões mais rápidas com um comando rsync depois disso. Com um soquete aberto, passo de 3 a 4 segundos para milissegundos

    
por Joshua Enfield 17.08.2010 / 16:28

2 respostas

3

você quer trabalhar com o comando nohup ?

    
por 17.08.2010 / 16:33
3

Que tal experimentar o autossh:

link

Ele gerencia a conexão SSH para você e retorna para o chamador quando você o inicia.

    
por 17.08.2010 / 16:34

Tags