ssh, sudo를 누른 다음 다운로드하시겠습니까?

ssh, sudo를 누른 다음 다운로드하시겠습니까?

세 명의 사용자가 있는 서버 A가 있습니다. 폴더의 70GB 콘텐츠를 서버 B로 다운로드해야 합니다. 서버의 공간은 90GB밖에 되지 않아 압축해서 전송할 수 없습니다. 내 경험상 rsync다른 방법보다 10배나 느릴 정도로 매우 느립니다.

나는 항상 사용

ssh user@ip "tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

이 명령은 파이프를 열고 원하는 모든 것을 최대 속도로 직접 다운로드하기 때문에 놀랍습니다. rsync와 같은 작은 파일에서는 속도가 느려지지 않습니다. 저는 물건을 빠르게 전송하는 데 사용하는데 속도가 너무 빨라서 100mbps 업로드 속도가 병목 현상을 일으키게 됩니다.

어쨌든 서버 A에는 내가 로그인한 사용자가 있고 sudo -i도 있고 마지막으로 마인크래프트 사용자 파일이 실제로 아래에 있습니다. 이 사용자는 실제 사용자가 아니며 보안 목적을 위한 파일 자리 표시자일 뿐입니다. 이 사용자로 로그인할 수 없습니다.

그래서 제가 해야 할 일은 서버 B에서 서버 A로 ssh를 실행하고 명령을 사용하여 루트로 sudo를 실행하고 루트 비밀번호를 제공한 다음 평소대로 수행하는 것이었습니다.

ssh user@ip "tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

도와주세요, 전능하신 컴퓨터 전문가님.

답변1

비대화형 모드에서는 tty 장치가 자동으로 할당되지 않기 sudo: no tty present때문에 오류 메시지가 나타납니다 . ssh즉, 원격 시스템에서 실행할 명령을 지정했습니다.

이 옵션을 사용하면 ssh가 tty 장치를 할당하도록 강제할 수 있습니다 -t.

ssh -t user@ip "sudo tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

답변2

내부적으로 ssh 명령을 사용할 수 있습니다 sudo. sudo 비밀번호 프롬프트의 경우 스위치를 사용하여 일반 텍스트로 비밀번호를 전달할 수 있습니다 -S.

ssh user@ip "echo mypassword | sudo -S tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

또 다른 방법은 을 사용하는 것입니다 expect.

관련 정보