매개변수가 있는 함수를 호출하는 작업을 위해 작성한 스크립트가 있습니다. 매개변수를 사용하여 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루프를 중지하세요.