システムに ssh して while ループで再起動していますが、ssh セッションが閉じないため、最初の再起動後にスクリプトがハングしたままになっています。さまざまな方法で閉じようとしましたが、何かいい方法はありませんか? echo "test" までたどり着けません。
#!/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
リセット
#! /bin/sh
if [ -e /dev/ttyUSB2 ] && [ -e /dev/ttyUSB5 ]; then {
reboot -f
}
fi
答え1
再起動を要求しているためにリモート セッションが失われ、リモート システムが応答するのを待つ間システムがしばらくハングする可能性があります。
その前に、次のようなsshpass
タイムアウト コマンドを紹介します。timeout
timelimit
timeout 10s sshpass ...
サービスに関してはssh
、パスワードの使用を避け、代わりに RSA 証明書認証を使用するようにしてください。特定の sshpass コマンドについてはよくわかりませんが、呼び出されるバイナリが予防措置を講じていない場合、ps
コマンド ラインで使用するとパスワードが見られることがよくあります。