시스템에 SSH를 연결하고 잠시 동안 재부팅하고 있지만 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
같은 시간 초과 명령을 소개하겠습니다 .timeout
timelimit
timeout 10s sshpass ...
서비스 의 경우 ssh
비밀번호 사용을 피하고 대신 RSA 인증서 인증을 사용하십시오. 특정 sshpass 명령에 대해서는 잘 모르겠지만 호출되는 바이너리가 예방 조치를 취하지 않는 경우 ps
명령줄에서 사용할 때 비밀번호를 볼 수 있는 경우가 많습니다.