Estou tentando criar uma máquina sem cabeça que execute automaticamente o PuTTY na inicialização a partir de um script e reinicie automaticamente caso o programa feche.
Embora isso esteja tecnicamente funcionando bem na maioria das situações, se houver problemas de rede, o putty simplesmente exibirá um pop-up informando que foi desconectado.
Eu vi a opção "fechar janela ao sair" e sei que é disso que preciso, mas só posso fazer isso na janela - não encontrei uma maneira de alterar essa configuração na linha de comando.
Alguém sabe se isso é possível e o que definir... ou se é apenas possível alterar os padrões, pois é tudo o que será executado nesta máquina?
Responder1
A melhor solução seria criar uma sessão personalizada no PuTTY (com a configuração "Fechar janela ao sair" alterada) e carregar essa sessão através da linha de comando, mas se você não tiver acesso à GUI, isso não é fácil. No entanto, não conheço nenhuma maneira de especificar configurações individuais por meio da linha de comando.
Entretanto, se você puder editar o registro, poderá criar uma sessão criando uma nova chave em
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
onde você pode adicionar valores correspondentes às configurações da sessão na GUI. Portanto, se você quiser que a janela sempre feche ao sair, adicione um valor DWORD chamado CloseOnExit contendo o valor 2. Todo o resto não especificado permanecerá como padrão.
Você então adicionaria
-load "session name"
à string da linha de comando, onde "nome da sessão" é o nome da chave que você criou. Coloque quaisquer outras opções de linha de comando depois disso (como servidor, nome de login, senha, etc.) e está tudo pronto.
Eu mesmo testei isso, mas ainda é prudente fazer backup do seu registro antes de qualquer edição manual.
Como alternativa, existem garfos de PuTTY (comoBandeja PuTTY) que apresentam reconexão automática após uma interrupção, embora eu não possa garantir o quão bem eles funcionam.
Responder2
Quando você recebe este erro:
então você pode escrever umScript AutoItque espera que esta janela apareça e a reconheça:
$title = "PuTTY Fatal Error"
WinWaitActive( $title )
ControlClick($title,"", "Button1", "primary")
sleep(100)
WinClose("PuTTY (inactive)","")
Você também pode compilar o script em um arquivo .exe pequeno e independente. Coloque isso em seu arquivo em lote antes de iniciar o PuTTY.
Responder3
Eu sei que estou atrasado para o jogo, mas você também pode usar putty's plink.exe
. Ele usa os mesmos parâmetros do putty, mas é executado em linha como o ssh
comando. Ele também bloqueia o processamento e retorna um status de falha, o que pode ser muito útil para uma conexão com falha em meio a vários comandos.