Normalmente, tenho várias janelas de terminal, cada uma das quais conectada via ssh a um servidor remoto. Em cada janela, trabalho com o programa gnu screen, para garantir a persistência dos processos interativos em caso de desconexão.
Atualmente, sempre que a conexão ssh cai (como quando eu coloco o computador cliente em suspensão durante a noite), tenho que reiniciar manualmente e tediosamente a sessão ssh dentro de cada janela e, em cada janela, tediosamente retomar a sessão de tela específica (por exemplo, "tela - r 3453 "em uma janela," tela -r 3462 "na outra etc.)
Existe uma maneira elegante de automatizar isso? Especificamente:
reconecte a sessão ssh se ela cair, assim que uma conexão com a Internet for detectada
execute a instância de tela específica para a janela do terminal assim que o ssh se reconectar
Obrigado por qualquer dica sobre isso
fonte
Não há necessidade de cortar loops bash. Você precisa procurar em autossh . Eu não o usei muito, mas meu entendimento é que você simplesmente substitui
ssh
porautossh
seu comando.Edit: De fato, o autossh vem com um script chamado
rscreen
que parece ser projetado exatamente para esse fim.fonte