저는 분산 Linux 시스템에서 작업하고 있습니다. 내 Bash 스크립트에서 다음 출력을 grep하고 싶습니다.
ssh $ipaddress ibstat
컴퓨터가 다운되면 위 명령이 중단됩니다. 0이 아닌 값으로 중단 및 종료 bash 스크립트를 처리하는 방법은 무엇입니까?
답변1
ConnectTimeOut
특정 환경에 맞게 조정해야 할 수 있는 더 낮은 값 옵션을 사용하십시오 .
$ ssh -o ConnectTimeout=2 $ipaddress
ssh: connect to host 192.168.123.123 port 22: Connection timed out
$ echo $?
255
테스트할 수 있는 반환 값을 얻을 수도 있습니다. 즉, 255
명령을 처리하는 동안 오류가 발생했음을 의미합니다.
답변2
다음 timeout
유틸리티를 선택할 수 있습니다.
timeout 5 ssh $ipaddress ibstat
5초 후에 0이 아닌 결과로 종료됩니다. 이를 ibstat가 완료하기에 충분한 합리적인 값으로 설정하십시오.
답변3
먼저 호스트 가용성을 확인해 보세요.
if ping -c 1 $ipaddress &> /dev/null
then
ssh $ipaddress ibstat
else
exit 1
fi