SSH를 통해 원격 스크립트를 실행할 때 사용자 "읽기" 명령

SSH를 통해 원격 스크립트를 실행할 때 사용자 "읽기" 명령

먼저 내 상황을 설명하겠습니다. .bashrc에 별칭이 있습니다.

doscript () { ssh root@server$1 -p2202 "bash -s" < ~/scripts/$2 $3; }

기본적으로 여러 작업으로 구성된 스크립트가 있습니다. 예를 들면 다음과 같습니다.

check current settings
read comment
do actions
write $comment in a file
restart service

그래서 명령을 실행합니다.

doscript server scriptname parameter

하지만 '댓글 읽기' 섹션이 작동하지 않습니다. 내가 주석을 입력할 때까지 기다리지 않고 주석 파일에 아무것도 추가하지 않고 즉시 주석을 실행합니다.

이런 경우 변수를 입력할 수 있는 방법이 있나요?

답변1

너무 많은 변경을 하지 않고 이를 수행하는 일반적인 방법은 파일을 원격으로 복사한 다음 실행하여 stdin을 tty 입력에 사용할 수 있도록 만드는 것입니다. 예를 들어

scp -P 2202 ~/scripts/$2 root@server$1:./myscript
ssh -t root@server$1 -p2202 bash ./myscript $3

scp또는 라인을 다음으로 교체 할 수 없는 경우

ssh root@server$1 -p2202 'cat >./myscript' <~/scripts/$2

관련 정보