bash 스크립트에서 SSH 세션이 닫히지 않았습니다.

bash 스크립트에서 SSH 세션이 닫히지 않았습니다.

시스템에 ssh를 실행하고 while 루프에서 다시 시작하지만 ssh 세션이 닫히지 않아 처음 다시 시작한 후 스크립트가 중단됩니다. 전원을 끄는 다양한 방법을 시도해 봤는데 어떤 아이디어가 있나요? 나는 에코 "테스트"를 결코 얻지 못합니다.

#!/bin/bash
while true
do
echo "Executing SSH session to 192.168.1.1..."
sshpass -p "pass" ssh -o StrictHostKeyChecking=no [email protected] << ! 
./reset.sh 
! 
echo "test"
sleep 20
done

재설정.sh

#! /bin/sh
if [  -e /dev/ttyUSB2 ]  && [  -e /dev/ttyUSB5 ]; then {
reboot -f
}
fi

답변1

재부팅을 요청하면 원격 세션이 손실되어 원격 시스템의 응답을 기다리면서 시스템이 잠시 정지되는 경우가 발생할 수 있습니다.

그 전에 다음 과 sshpass같은 시간 초과 명령을 소개하겠습니다 .timeouttimelimit

timeout 10s sshpass ...

서비스 의 경우 ssh비밀번호 사용을 피하고 RSA 인증서 인증을 사용하십시오. 특정 sshpass 명령에 대해서는 확실하지 않지만 일반적으로 호출되는 바이너리가 예방 조치를 취하지 않는 경우 ps명령줄에서 사용할 때 비밀번호를 볼 수 있습니다.

관련 정보