![bash 스크립트를 원격으로 실행할 수 없습니다(너무 많음).](https://linux55.com/image/159107/bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9B%90%EA%B2%A9%EC%9C%BC%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4(%EB%84%88%EB%AC%B4%20%EB%A7%8E%EC%9D%8C)..png)
몇 가지 조사를 한 후:
쉘 스크립트가 텔넷이나 프로그램에서 명령을 실행하도록 합니다.
원격 서버에 로그인한 다음 (원격 서버에서) 서버에 텔넷으로 연결하는 스크립트를 생각해 냈습니다.
스크립트 파일
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.
스크립트를 원격 서버에 업로드하면 예상대로 작동합니다. 왜?