tar를 가져와서 원격 서버에 복사하고 tar를 추출합니다.

tar를 가져와서 원격 서버에 복사하고 tar를 추출합니다.

로그인한 셸에서 tar를 가져와 해당 tar 파일을 원격 호스트로 전송한 다음 그곳에서 tar 파일을 추출하고 싶습니다. 다음 명령이 있지만 tar 자체가 생성되지 않습니다.

time=`date`
timestamp=`date +%F_%H%M`
backpfilename=db${timestamp}.tar.gz

cd /home/aryan/ && tar -cvzf $backupfilename | ssh root@remoteserver 'cd /home/aryantest/ && tar -xvzf $backpfilename'

답변1

tar 파일을 디스크에 쓰지 않고 반대편에서 직접 추출할 수 있습니다.

tar czv <files>| ssh root@remoteserver 'cat | tar xz -C /remotedir'

파일을 복사 하는 데에도 사용할 수 있습니다 netcat.

진행률 표시줄을 원하면 pv이것을 사용할 수 있습니다. 속도를 표준 출력으로 인쇄하므로 복사 속도를 확인할 수 있습니다.

tar czv <files> | pv | ssh root@remoteserver 'cat | tar xz -C /remotedir'

tar 파일이 이미 있는 경우 pvSSH를 통해 파이프할 수 있습니다.

pv backupfile.tgz| ssh root@remoteserver 'cat | tar xz -C /remotedir'

답변2

이 시도:

cd /home/aryan
tar cfvz /dev/stdout . |
    ssh root@remoteserver 'cat > file.tar.gz && tar zxvf file.tar.gz'

조금만 익숙해지면 돼

노트

/dev/stdout로 대체될 수 있습니다 -.

tar를 사용하여 압축 파일을 만드는 기본 방법은 다음과 같습니다 tar opts file.ext dir/. 여기서는 대상 파일 이름을 STDOUTSSH를 통해 전송할 수 있는 이름으로 명시적으로 대체합니다.

관련 정보