서버와의 연결을 끊은 후 스크립트 호출

서버와의 연결을 끊은 후 스크립트 호출

매개변수가 있는 함수를 호출하는 작업을 위해 작성한 스크립트가 있습니다. 매개변수를 사용하여 ssh서버에 들어갑니다. 내 질문은: 서버와의 연결이 끊어지면 자동으로 스크립트를 호출하도록 이 메서드를 호출하는 방법이 있습니까? 예를 들어, ssh우리 서버 중 하나에 들어갈 수 있습니다. reverse-ssh한 시간 후에 연결이 닫히도록 터널을 설정했습니다 . 연결을 끊은 후 호스트 이름을 묻는 스크립트가 다시 호출되기를 바랍니다.

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

createSSHFunction()
{
    arg1=$1
    ssh $host
}
createSSHFunction $host

답변1

재귀는 거의 문제를 해결하지 못합니다 :-)

간단한 루프로 원하는 작업을 수행할 수 있습니다.

while :; do
  ssh $host
done

종료될 때마다 ssh스크립트는 루프의 다음 반복으로 이동하여 다시 실행됩니다.

in 은 while :항상 :참값을 반환하므로 while절대 끝나지 않는 noop 명령입니다. 루프를 종료하는 방법이 필요한 경우 해당 기준이 무엇인지 파악하고 테스트해야 합니다.

답변2

무한 반복해야 하지만 완료되면 스크립트가 다시 실행되지 않도록 해야 합니다.

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

3초만 자면 이 악순환을 깨뜨릴 수 있는 기회가 주어집니다. SSH가 완료되면 종료합니다. 3초 후에 스크립트가 다시 시작됩니다. 이런 일이 발생하지 않도록 하려면 Ctrl-C루프를 중지하세요.

관련 정보