sıkıştırılmış dosya arşivine rsync


11

Bir sunucunun rsync ile yedeklerini alıyorum, ancak bu yedeklemeler oldukça büyük ve bunları sıkıştırmak istiyorum. Yedekleme dosya gunzip rsync etrafında sarmalayıcı bir tür var, canlı dosyadan değişiklikleri rsync, sonra kopyalanır kopyalanmaz dosyayı yeniden gzip bir yolu var mı?

Yani, canlı kaynak dosyalar foo , bar ve baz ise, yedeklemede foo.gz , bar.gz ve baz.gz bulunur .

Yeniden ifade etmek için: Bir ucunda sıkıştırılmış dosyalar, diğer ucunda sıkıştırılmamış dosyalar istiyorum. Ben rsyncing önce sıkıştırmak istemiyorum, çünkü --rsyncable olsa bile, rsync daha az verimli hale getirir. Ben rsync -z seçeneği hakkında biliyorum. Tüm dosyaları sıkıştırılmamış olarak saklamak için yedekleme makinesinde yerim yok.

Yanıtlar:


10

Ne yapmaya çalıştığınızı anladığımdan emin değilim, ancak ana sunucuda kolayca rsyncable olduklarından ve geçişte herhangi bir şey açmadan rahatsız etmediğinden emin olarak gzip yedeklemeleri oluşturabilirsiniz.

gzip(1)

--rsyncable
       While compressing, synchronize the output occasionally based on
       the  input.   This  increases  size by less than 1 percent most
       cases, but means that the rsync(1) program can much more  effi‐
       ciently  synchronize  files  compressed with this flag.  gunzip
       cannot tell the difference between a  compressed  file  created
       with this option, and one created without it.

Güzel. Yeniden senkronize edilebilir bayrağı bilmiyordum. Çok kullanışlı. Neden% 1'lik bir kayıp için varsayılan olmadığını merak ediyorum
Matt Simmons

Not: --rsyncable seçeneği, gzip'in tüm sürümlerinde mevcut değildir ve ayrıca çekirdek gzip kodu yerine yaygın olarak uygulanan bir yamadan gelir, bu nedenle sürüm numaraları olup olmadığını bilmek için yeterli değildir.
mc0e


-1

Rsync'e bir sarıcı yazabilirsiniz. Verileri 'çekerseniz', yapacak özel bir şey yoktur. Verileri orijinal makinelerden yedekleme sunucusuna 'aktarmak' istiyorsanız, çalışmasını sağlamak daha hassastır:

Öncelikle, en azından yedekleri çalıştıracağınız kullanıcı için, sarmalayıcının orijinal rsync ile aynı ad, yol ve parametrelerle çağrıldığından emin olmalısınız.

İkincisi, stdout'a hiçbir şey yazmadığınızdan emin olun, çünkü iletişim kanalını değiştirir.

Üçüncüsü, yeni sıkıştırılmamış hedef için uygun şekilde değiştirerek aldığınız tüm parametreleri ilettiğinizden emin olun.


-2

Muhtemelen diğer uçtaki dosya sıkıştırmasını değil, rsync aracılığıyla veri iletim sıkıştırması arıyor.

Kontrol et: http://jimmyg.org/blog/2007/rsync-basics.html

Kılavuz sayfasından sıkıştırma parametreleri:

   -z, --compress              compress file data during the transfer

        --compress-level=NUM    explicitly set compression level

Varsayılan olarak ssh bir dereceye kadar kendi sıkıştırmasını yapar. Rsync'in yerli ssh üzerinde ne kadar iyi olduğunu bilmiyorum. Dosyalarınızın çoğu zaten gzip dosyalarına sıkıştırılmışsa, muhtemelen rsync'in sıkıştırma mekanizmasının sizin için yapabileceği çok fazla şey olmayacaktır. Bir dosyayı yalnızca çok fazla sıkıştırabilirsiniz.


Hayır, yalnızca bir uçta dosya sıkıştırması arıyorum. zaten sıkıştırılmış dosyaları rsyncing verimsiz, bu yüzden rsync parçası sıkıştırılmamış veri ile olmasını istiyorum.
rjmunro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.