이것이 더 효율적이라는 것을 깨닫고 원래 질문을 다시 작성하고 있습니다.
내 웹사이트 파일을 tar 및 gzip으로 압축한 다음 다운로드하고 싶습니다.
tar와 cvzf를 사용하여 하나의 명령으로 tar 및 gzip을 사용할 수 있다는 것을 알고 있습니다.
그런 다음 rsync -av --stats 명령을 사용하여 rsync를 사용하여 개인용 컴퓨터에 다운로드할 수 있습니다.[이메일 보호됨]:/원격 디렉터리 경로/파일 이름/로컬 디렉터리 경로/파일 이름
이것을 하나의 명령으로 결합할 수 있나요?
또는 누군가 웹 디렉터리를 로컬 컴퓨터에 다운로드하여 파일로 백업하는 가장 좋은 방법을 제안할 수 있는 경우.
답변1
원격 서버의 디렉토리 트리를 로컬 시스템에 미러링하고 싶지 않다고 말씀하셨습니다. 이 경우에는 rsync
잘못된 도구입니다. tar
콘텐츠를 직접 원격으로 전송하여 압축된 tarball을 로컬 시스템에 전달할 수 있습니다 .
ssh [email protected] tar -C /path/to/directory -czf - . | cat >tarball.tgz
와 달리 rsync
이는 로컬에서 어떤 상태도 유지하지 않으므로 전송 중에 연결이 끊어지면 전체 아카이브를 다시 전송해야 합니다. 이 문제를 해결하는 한 가지 방법은 tar
원격 서버의 콘텐츠에 액세스한 다음 이를 사용하여 rsync
해당 콘텐츠를 전송하는 것입니다.
ssh [email protected] 'tar -C /path/to/directory -cf - . | gzip --rsyncable >tarball.tgz'
rsync -av [email protected] tarball.tgz .
이 --rsyncable
플래그는 압축되지 않은 원본 파일의 사소한 변경으로 인해 전체 압축 결과가 변경되지 않도록 압축된 파일 내에 다시 시작 표시를 제공합니다.
답변2
파일을 압축할 수 있습니다기간이 옵션을 사용하여 전송하십시오 -z
. 그러나 이는 수신하는 파일에 아무런 영향을 미치지 않습니다(더 빠른 전송 제외). 즉, 단일 파일로 "gzipped"되지 않습니다.
원격 디렉터리를 tar한 다음 개별 파일을 rsync할 수 있습니다. 복사할 작은 파일이 많은 경우 전송 프로세스 속도를 높일 수 있습니다.
그러나 앞서 했던 것처럼 디렉터리를 재동기화한 다음 tar(백업 파일로)를 빌드하는 것도 의미가 있습니다. 다음에 이 일을 하게 된다면, 그냥변경됨파일이 전송되므로 이름이 rsync입니다.