Chame o script depois de desconectar do servidor

2

Eu tenho um script que eu fiz para o trabalho que irá chamar uma função que leva um argumento. Eu uso os argumentos para ssh em nossos servidores. Minha pergunta é: Existe uma maneira de chamar o método para que, se / quando eu for desconectado de nossos servidores, ele chame o script automaticamente? Por exemplo, posso ssh em um dos nossos servidores. Nós temos um túnel reverse-ssh configurado então depois de uma hora a conexão é fechada. Eu quero que assim, após a desconexão, o script será chamado novamente solicitando um nome de host.

#!/bin/bash
echo "Provide hostname: "
read host

createSSHFunction()
{
    arg1=$1
    ssh $host
}
createSSHFunction $host
    
por ryekayo 21.07.2014 / 19:40

2 respostas

1

Você precisará fazer um loop infinitamente, mas impedir que o script seja executado novamente quando terminar.

while ((1)); do script.sh; sleep 3; done

O sono de três segundos lhe dá a oportunidade de quebrar o ciclo. Quando você terminar com o ssh, saia. Em três segundos, o script será iniciado novamente. Se você não quiser que isso aconteça, Ctrl-C interromperá o loop.

    
por 21.07.2014 / 20:30
2

Recursão raramente é a resposta para qualquer coisa: -)

O que você está tentando fazer pode ser feito através de um simples loop

while :; do
  ssh $host
done

Sempre que ssh sair, o script irá para a próxima iteração do loop e executará novamente.

Em while : , o : é um comando noop que sempre retorna um valor verdadeiro, portanto, o while nunca terminará. Se você precisar de algum modo de encerrar o loop, precisará descobrir qual é esse critério e testá-lo.

    
por 21.07.2014 / 19:59