Tar 명령 및 PIPE

Tar 명령 및 PIPE

내가 원한다고 가정 해 봅시다 :

서버 A의 디렉토리에서 tarball 만들기

이 타르볼을 서버 B에 복사하세요.

서버 B에서 압축을 푼다

ssh root@serverB   " scp  root@serverA:/var/www/dirs.tar.gz  /var/www/dirs.tar.gz && tar -xvf  /var/www/dirs.tar.gz 

파이프를 사용하여 경로가 중복되는 것을 피하고 싶습니다. 두 번째 매개변수를 얻으려면 PIPE를 사용하여 올바르게 작성하려면 어떻게 해야 합니까?

감사해요

답변1

디렉토리를 압축하고 원격 서버에 복사한 다음 거기에서 압축을 풀까요? 글쎄요 scp -r directory ..., rsync -r directory ...아니면 sftp훨씬 낫습니다.

tar 파일을 원격 서버에 복사하고 추출하려면 다음을 시도하십시오.

tar -cf - mydir | ssh [email protected] 'bash -c "tee archive.tar | tar -xf -"'

여기서 핵심은 teetar 파일의 복사본을 원격 파일 시스템에 넣고 tar 파일을 tar 명령에 전달하여 압축을 푼다는 것입니다.

아마도 덜 복잡한 해결책은 rsynctar 파일을 생성할 수 있는 원격 서버로 디렉터리를 전송하는 것일 수 있습니다.

답변2

타르볼을 어떻게 생성하는지 알 수 없고, 별도의 단계가 필요하지만 tar파일을 생성/사용할 필요가 없는 경우에는 다음과 같이 하면 됩니다.

ssh serverA tar cz file… | tar xz

(이해를 돕기 위해 귀하가 이미 root@serverB라고 가정하고 올바른 디렉토리에 있는지 확인하는 등의 사항은 생략했습니다.)

관련 정보