몇 가지 조사를 한 후:
쉘 스크립트가 텔넷이나 프로그램에서 명령을 실행하도록 합니다.
원격 서버에 로그인한 다음 (원격 서버에서) 서버에 텔넷으로 연결하는 스크립트를 생각해 냈습니다.
스크립트 파일
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.
스크립트를 원격 서버에 업로드하면 예상대로 작동합니다. 왜?