동일한 파일 세트를 rsync
보내면 차이 만 보내므로 더 적합합니다. tar
항상 모든 것을 전송하며 많은 데이터가 이미있을 때 리소스 낭비입니다. 이 tar + rsync + untar
경우이 장점을 잃어 버리고 폴더를와 동기화 상태로 유지하는 이점도 rsync --delete
있습니다.
처음으로 파일을 복사 할 경우, 먼저 packeting 후 전송, 다음 (AFAIK 풀고 것은 rsync
때문에 파이프로 연결된 입력을하지 않음), 성가신 그냥 rsyncing 항상보다 더 나쁘다 rsync
이상의 모든 작업을 수행 할 필요가 없습니다 tar
어쨌든.
팁 : rsync 버전 3 이상은 증분 재귀를 수행하므로 모든 파일을 계산하기 직전에 거의 복사를 시작합니다.
Tip2 : rsync
over 를 사용하면 다음 ssh
중 하나를 사용할 수도 있습니다tar+ssh
tar -C /src/dir -jcf - ./ | ssh user@server 'tar -C /dest/dir -jxf -'
아니면 그냥 scp
scp -Cr srcdir user@server:destdir
일반적으로 간단하게 유지하십시오.
최신 정보:
59M 데모 데이터를 만들었습니다
mkdir tmp; cd tmp
for i in {1..5000}; do dd if=/dev/urandom of=file$i count=1 bs=10k; done
두 가지 방법을 사용하여 파일을 원격 서버 (동일한 LAN이 아닌)로 여러 번 테스트했습니다.
time rsync -r tmp server:tmp2
real 0m11.520s
user 0m0.940s
sys 0m0.472s
time (tar cf demo.tar tmp; rsync demo.tar server: ; ssh server 'tar xf demo.tar; rm demo.tar'; rm demo.tar)
real 0m15.026s
user 0m0.944s
sys 0m0.700s
전송 된 ssh 트래픽 패킷과 별도의 로그를 유지하면서
wc -l rsync.log rsync+tar.log
36730 rsync.log
37962 rsync+tar.log
74692 total
이 경우 기본 mtu가 1500이고 파일 크기가 10k 인 경우 rsync + tar를 사용하면 네트워크 트래픽이 적을 때 이점이 없습니다. rsync + tar는 더 많은 트래픽을 생성하고 2-3 초 동안 느려졌으며 두 개의 가비지 파일을 정리해야했습니다.
동일한 LAN에있는 두 대의 컴퓨터에서 동일한 테스트를 수행했으며 rsync + tar는 훨씬 더 나은 시간과 훨씬 적은 네트워크 트래픽을 수행했습니다. 점보 프레임의 원인을 가정합니다.
아마도 rsync + tar는 훨씬 더 큰 데이터 세트에서 rsync보다 낫습니다. 그러나 솔직히 말해서 문제가 될만한 가치가 없다고 생각합니다. 포장 및 포장 풀기 위해 양쪽에 이중 공간이 필요하며 위에서 언급 한 다른 옵션이 몇 가지 있습니다.