scp, sftp 또는 rsync 파이프를 사용할 수 있습니까?

scp, sftp 또는 rsync 파이프를 사용할 수 있습니까?

~700GiB 디렉터리를 압축하여 내가 제어할 수 없는 원격 드라이브로 보내고 싶습니다. tarball을 생성한 다음 복사할 로컬 하드 드라이브 공간이 없습니다. 리모컨은 rssh로 보호됩니다. 서버에 ssh를 연결하여 임의의 명령을 실행할 수 없습니다.

그러나 scp, rsync 또는 sftp를 사용할 수 있습니다. 그래서 제 질문은 이 3가지 명령 중 하나에 관한 것입니다. 다른 쪽 끝에서 임의의 명령을 실행할 수 없도록 scp, rsync 또는 sftp가 파이프를 복사하도록 하는 방법이 있습니까?


업데이트: 다음 솔루션은 보조 스토리지에서 작동하지 않습니다. 특정 명령을 실행하는 것으로 제한됩니다. ssh를 사용할 수 없습니다. ssh를 사용하는 명령은 rssh를 통해 필터링/제어됩니다.

마지막으로 우리는 모든 보조 계정을 취소하고 기본 스토리지의 크기를 두 배로 늘리는 데 많은 돈을 썼습니다(기본 호스트는 마이그레이션 없이 이 작업을 수행할 수 있다는 점은 훌륭합니다). 그런 다음 임시 아카이브를 생성하여 정상적으로 보냈습니다. (초기 저장 용량으로는 이 작업을 수행할 수 없습니다.)

앞으로는 더 큰 전용 스토리지가 있는 보조 VPS를 사용하여 이런 일이 다시는 발생하지 않도록 할 것입니다. 내가 요구하는 것은 불가능하다는 것이 분명했습니다.

답변1

정확히 "파이프라인"은 아니지만 기본적으로 scp특정 FD(파이프일 수 있음)가 호스트에서 다른 호스트로 복사되도록 지시할 수 있습니다. 간단한 bash 명령은 다음과 같습니다.

( scp미리 치수를 결정해야 하기 때문에 작동하지 않습니다):

scp <(tar cz files to compress) host:/path/to/new.file

그러나 pure와 함께 사용할 수 있습니다 ssh.

tar cz files to compress | ssh host "cat > /path/to/new.file"

답변2

SFTP를 통한 RSYNC 동작

mirror아무것도 압축하지 않고도 LFTP(이름이 잘못됨)와 LFTP 하위 시스템을 사용하여 디렉터리 구조를 반대편에 복사할 수 있습니다. LFTP는 SFTP를 지원하며 미러링 하위 시스템은 rsync의 거의 모든 기능을 지원합니다. 또한 전송 속도를 높이기 위해 원하는 수의 연결로 분할할 수도 있습니다. 나는 항상 이것을 한다.

또한 다음 기사를 확인하세요. https://serverfault.com/questions/135618/is-it-possible-to-use-rsync-over-sftp-without-an-ssh-shell

관련 정보