bashスクリプトをリモートで実行できません(多すぎます)。

bashスクリプトをリモートで実行できません(多すぎます)。

いくつかの調査を行った後:

SSHスクリプトと実行コマンドが機能しない

sshpassの複数のコマンド

シェルスクリプトがTelnetまたはプログラムでコマンドを実行するようにします。

リモートサーバーにログインし、(リモートサーバー上)サーバーにTelnetに接続するスクリプトを思いつきました。

スクリプトファイル

cat run_on_remote.sh | sshpass -p "$PASS" ssh -t -t -o StrictHostKeyChecking=no host@serv

run_on_remote.sh:

echo "[REMOTE] Logged into remote. Current working directory `pwd`"

echo "[REMOTE] Moving deployment to /some/dir"

mv "deployment.rar" "/some/dir"

(
echo open "localhost 50008"
sleep 2
echo "user"
sleep 2
echo "pass"
sleep 2
echo "ls -la | grep deployment-name"
sleep 2
echo "undeploy deployment-name"
sleep 5
echo "deploy deployment-name"
sleep 5
echo "Redeployed adapter"
echo "exit"
) | telnet

echo "Finishing SSH session"
exit 

ただし、次のエラーが発生します。

 ) | telnet
Too many )'s.

スクリプトをリモートサーバーにアップロードすると、期待どおりに機能します。なぜ?

関連情報