이 명령을 사용하여 ssh user@remote -p 22 "tar cz my-folder" | tar xz -C /d/local-backups
원격 폴더를 로컬 드라이브에 백업하고 있습니다.
잘 작동하고 폴더 구조가 내 로컬 드라이브에서 동일하게 복제됩니다. 그러나 파일을 추출하고 똑같은 폴더 구조를 다시 생성하는 대신 파일을 아카이브에 추가하는 것이 가능합니까?
나는 비슷한 것을 시도했지만 ssh user@remote -p 22 "tar cz my-folder" | tar rz -C /d/local-backups/arcive.tar.gz
운이 없었습니다.
편집하다 이것은 명령을 사용한 콘솔 출력입니다.
`ssh user@remote -p 22 "tar cz my-folder" | tar rvf -C /d/local-
backups/archive.tar.gz`
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from member names
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from hard link targets
명령을 실행하기 전에 archive.tar.gz(내부에 텍스트 파일 포함)를 생성해 보았지만 아카이브가 존재하는데도 파일이 들어가지 않습니다.
내 서버에서 검색된 모든 파일을 포함하는 "archive.tar.gz" 파일을 끝에 하나만 두는 방법이 있습니까?
답변1
첫 번째 단계 명령의 아이디어에 따라 원격 시스템에 아카이브를 생성합니다.
ssh user@remote -p 22 "tar cz my-folder"
그런 다음 로컬 컴퓨터로 추출합니다.
| tar xz -C /d/local-backups
-C - change directory to "/local-backups" before performing an operation.
이것이 이론적으로 이 명령을 사용하여 로컬 컴퓨터에 아카이브를 가질 수 없는 이유입니다. 그러나 어쨌든 그것을 추출하는 것보다 훨씬 간단합니다. 원격 시스템에 아카이브를 생성하고 로컬 시스템에 아카이브를 저장하려는 경우 다음을 사용할 수 있습니다.
ssh user@remote -p 22 "tar cz my-folder" > /tmp/archive.tar.gz
이 명령은 아카이브를 생성합니다. 그 후 결과를 확인할 수 있습니다
$ tar -tvf archive.tar.gz
drwxr-xr-x zidercol/users 0 2021-12-20 18:10 Temp/
-rw-r--r-- zidercol/users 270 2021-12-20 18:10 Temp/T0