원하는 것을하는 방법은 여러 가지가 있습니다. 가장 간단한 방법은 ppe를 사용하는 것입니다.
tar zcvf - MyBackups | ssh user@server "cat > /path/to/backup/foo.tgz"
여기서 압축은 tar
어떤 호출 gzip
( z
플래그)에 의해 처리되고 있습니다. compress
( Z
) 및 bzip
( j
)를 사용할 수도 있습니다 . 에 대해 다음 7z
을 수행하십시오.
tar cf - MyBackups | 7za a -si -mx=9 -ms=on MyBackups.tar.7z |
ssh user@server "cat > /path/to/backup/foo.7z"
그러나 가장 좋은 방법은 아마입니다 rsync
.
Rsync is a fast and extraordinarily versatile file copying tool. It can copy
locally, to/from another host over any remote shell, or to/from a remote rsync dae‐
mon. It offers a large number of options that control every aspect of its behavior
and permit very flexible specification of the set of files to be copied. It is
famous for its delta-transfer algorithm, which reduces the amount of data sent over
the network by sending only the differences between the source files and the exist‐
ing files in the destination. Rsync is widely used for backups and mirroring and
as an improved copy command for everyday use.
rsync
이 방법은 너무 많은 옵션을. 실제로 읽을 가치가 있지만 첫눈에 무섭습니다. 이 맥락에서 관심있는 것은 다음과 같습니다.
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
-z, --compress
With this option, rsync compresses the file data as it is sent to the desti‐
nation machine, which reduces the amount of data being transmitted --
something that is useful over a slow connection.
Note that this option typically achieves better compression ratios than can
be achieved by using a compressing remote shell or a compressing transport
because it takes advantage of the implicit information in the matching data
blocks that are not explicitly sent over the connection.
따라서 귀하의 경우 다음과 같은 것을 원할 것입니다.
rsync -z MyBackups user@server:/path/to/backup/
파일은 전송 중에 압축되어 도착지에 압축이 풀린 상태로 도착합니다.
더 많은 선택 :
scp
자체는 데이터를 압축 할 수 있습니다
-C Compression enable. Passes the -C flag to ssh(1) to
enable compression.
$ scp -C source user@server:/path/to/backup
이 얻을 수있는 방법이 될 수 있습니다 rsync
및 7za
좋은 플레이 있지만 이렇게 아무 문제가 없다. rsync
로컬 파일과 원격 파일간에 변경된 비트 만 복사한다는 이점이 있습니다. 그러나 작은 로컬 변경으로 인해 압축 파일이 매우 다를 수 있으므로이를 사용할 필요가 없습니다 rsync
. 아무런 이익이없이 문제를 복잡하게 만듭니다. ssh
위와 같이 직접 사용하십시오 . 당신이 경우 정말 이 작업을 수행하려면, 당신은 인수로 서브 쉘을 제공하여 시도 할 수 있습니다 rsync
. 내 시스템에서는 7za
압축 된 데이터를 터미널에 쓸 수 없으므로이 작업을 수행 할 수 없습니다 . 아마도 구현이 다를 수 있습니다. 다음과 같은 것을 시도하십시오 ( 이것은 저에게 효과적이지 않습니다 ).
rsync $(tar cf - MyBackups | 7za a -an -txz -si -so) \
user@server:/path/to/backup
또 다른 요점은 7z
Linux에서 백업에 사용해서는 안된다는 것 입니다. 7z
매뉴얼 페이지 에 명시된 바와 같이 :
Linux / Unix에서 백업 목적으로 7-zip 형식을 사용하지 마십시오.--7-zip
은 파일의 소유자 / 그룹을 저장하지 않습니다.
-z
에서는 두 배 이상 느립니다. ssh를 통한 rsyncing보다 더 빠른 속도를 위해서는-W
플래그를 사용하여 rsync 데몬과 rsync를 설정하십시오 (파일 전체를 복사합니다 (delta-xfer 알고리즘 없음)