쉘 스크립트는 로컬 및 원격으로 명령을 실행할 수 있습니다.

쉘 스크립트는 로컬 및 원격으로 명령을 실행할 수 있습니다.

그래서 여기에 질문이 있습니다. 원격 컴퓨터에 루트 전용 파일이 있고 개인 키에만 루트 없는 SSH 액세스가 있습니다(하지만 sudo는 있습니다). 이 파일을 내 로컬 컴퓨터에 복사하고 다른 사람들이 여러 번 사용할 것이므로 가능한 한 사용하기 쉽게 만들어야 합니다(별명 또는 쉘 스크립트).

내가 생각해낸 내용은 다음과 같습니다. 1. 원격 시스템에 SSH를 통해 권한이 있는 위치에 파일을 복사합니다. 2. 로컬 시스템에서 방금 복사한 파일에 대해 rsync --remove-source-files를 수행합니다.

하지만 단 하나의 명령으로 이를 수행할 수 있는 방법은 없습니다. 당신은 있나요?

답변1

나는 Eight Tonys의 답변을 개선할 수 있다고 생각합니다.

ssh -t user@target 'sudo cat /source/file' > output && chmod +x output

여러 파일이 관련된 경우공원rsync가 얼마나 자주 "단순화"하는지에 관계없이 rsync보다 사용하기 쉽습니다.

ssh -t user@target 'cd /src && pax -w ./' | pax -r 

HTH.

답변2

ssh -t user@target machine sudo cp /source/file /target/file

-tsudo가 비밀번호를 요청할 수 있도록 의사 tty를 만듭니다 . 이 ssh명령은 대상 머신에서 실행된 후 연결이 끊어지는 선택적 명령( sudo cp ....이 경우)을 사용합니다.

sudo비밀번호(즉, user@target의 비밀번호)를 입력하라는 메시지가 표시됩니다 .

그런 다음 rsync부팅 시스템에서 이 스크립트를 작성할 수 있습니다. 단일 스크립트에 두 줄만 포함하면 됩니다.

관련 정보