Tar ile dosyaları arşivlerken gzip sıkıştırma oranlarını kontrol et


3

" Tar -czvf [name] [directory] komutunu kullanarak düzenli aralıklarla bir dizini yedekleyen bir komut dosyasına sahibim, ancak benim sorunum komut dosyasının son zamanlarda sunucuya çok fazla baskı yapması (Minecraft SMP) ve gecikme eğiliminde olmasıdır. Son zamanlarda yaklaşık 5 dakika süren oyuncular yedekler.

Bu nedenle, GZip sıkıştırma oranını aynı anda dosyaları arşivlediğini ve yedeklediğini kontrol etmenin bir yolu olup olmadığını bilmem gerekiyor?

Önce dosyaları tarlayabileceğimi ve sonra bunları farklı sıkıştırma oranlarıyla ayrı ayrı GZip edebileceğimi anlıyorum, ancak bu işlem işe yaramayacak çünkü mevcut komutlar arasında değişen mevcut sunucu zamanına sahip dosyaları adlandırıyor.

Herhangi bir görüş var mı? Vaktinden önce teşekkürler.


1
bu bir programlama sorusu değil; uzman kullanıcılar veya linux / unix stackexchange sitelerinde daha iyi olabilir.
jcomeau_ictx

3
Özür dilerim, buraya sadece bir kabuk betiğinin parçası olduğu için gönderdim. Sorunumu çözdüm , basit bir düzeltme şu şekilde tar komutundan hemen önce " GZIP = - [sıkıştırma seviyesi] " ifadesini koymaktı : GZIP=-[compression level] tar -czvf [name].tar.gz [directory]

Yanıtlar:


2

İki adımda yapmak muhtemelen daha taşınabilirdir. Bir zaman damgasına ihtiyacınız varsa, önce saklayın:

filename=/what/ever/backup-$(date +%Y%m%d%H%M%S).tar
tar cvf $filename ...
gzip -1 $filename

Ben de içine bakmak niceve öneririm ionice. Yedeklemelerin sunucu yanıt verebilirliği üzerindeki etkilerini azaltmanıza yardımcı olabilirler.


Aslında GZIP=-[compression level] tar -czvf [name].tar.gz [directory], sıkıştırma seviyesi için 1 kullandığım başka bir yöntemi kullanarak çözdüm, ancak kesinlikle yönteminize, yedekleme adlarını daha düzenli hale getirmeye çalışacağım ve umarım gecikmeyi daha da azaltabilir. daha önce aklımdan geçmedi. Bir ton teşekkürler.

1

Belki biraz geç, ama bu başkalarına yardım edebilir ...

Düzenli olarak benzer verileri yedekliyorsanız, ilk başta yalnızca bir kopya oluşturmayı (ve sıkıştırmayı değil, bu nedenle sadece bir tar dosyası oluşturmayı) ve sonradan daha fazla yedek kopyayı birlikte sıkıştırmayı düşünmelisiniz. Bir Minecraft sunucusu olması durumunda, muhtemelen her gün birkaç yedekleme yaparsınız. Bu yedekleri, her gün ya da öylesine güçlü bir algoritmayla birlikte sıkıştırarak, sunucuda çok fazla kişi olmadığında çalıştırabilirsiniz. Gecikme daha uzun olacak, ancak sonuçta ortaya çıkan arşiv gerçekten küçük olacak (dünya dosyalarının çoğu yedekler arasında hiç değişmiyor çünkü). Ve bazı çekirdeklerde (oldukça muhtemel olan) yedek güç varsa, sıkıştırma bunu kullanır (ve sunucunun geri kalanında daha az gecikmeye neden olur), muhtemelen yedeklemeler sırasında performansı arttırır .


0

Sık sık böyle bir şey yapıyorum, bu yüzden katran işlemi tamamlandığında, hepsi bir satırda yapıldığı için gzip'i hatırlamak zorunda kalmayacağım:

tar cvf - $nameOfDirOrFileToBeBackedUp | gzip -$compressionLevel > $backupLocation/$nameOfDirOrFileToBeBackedUp.tar.gz

Bu yöntem, gzip'i desteklemeyen eski tar sürümlerinde çalışır (Solaris 10 hala çalışmıyor).

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.