====== Συμπίεση ======
===== gzip =====
==== Παράλληλη συμπίεση ====
Μία καλή επιλογή εάν έχουμε ΗΥ με πολλούς πυρήνες είναι η χρήση του pigz (παράλληλο gzip). Με την χρήση του pv έχουμε progress bar. Χρησιμοποιούμε 1,2 πυρήνες λιγότερους από όσους διαθέτουμε και συμπίεση -5 που έχει καλή σχέση χρόνου συμπίεσης και ποσοστού συμπίεσης.
Για συμπίεση ενός φακέλου
folder=myfolder
tar -c $folder | pv --size $(du -b $folder | tail -n 1 | cut -f1) | pigz -p 5 -5 > $folder.tar.gz
ή χωρίς progress bar
folder=myfolder
tar -c $folder | pigz -p 5 -5 > $folder.tar.gz
Για backup sd κάρτας, που έστω ότι αναγνωρίστηκε ως /dev/sdb
dd if=/dev/sdb | pv | pigz -p 5 -5 > sdbackup.img.gz
==== Παράλληλη αποσυμπίεση ====
Για αποσυμπίεση μέχρι 2 πυρήνες μπορούν να χρησιμοποιηθούν
pv folder.tar.gz | unpigz -p 2 | tar xvf -
ή χωρίς progress bar
unpigz -p 2 < folder.tar.gz | tar xvf -
Αποσυμπίεση και εγγραφή σε κάρτα sd
unpigz -p 2 -c sdcard.img.gz | dd of=/dev/sdd bs=1M
Δεν είναι πάντα η πιο γρήγορη, να γίνεται δοκιμή και με 1 διεργασία
gzip -dc sdcard.img.gz | dd of=/dev/sdd bs=1M
Για να δούμε progress, εκτελούμε σε ένα άλλο τερματικό
watch -n 10 'killall -USR1 dd'
===== xz =====
==== Αποσυμπίεση ====
pixz -d -c sdcard.img.xz | dd of=/dev/sdd bs=1M
===== Πηγές =====
* http://catchchallenger.first-world.info//wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO#Compression_ratio
* http://linuxaria.com/article/linux-compressors-comparison-on-centos-6-5-x86-64-lzo-vs-lz4-vs-gzip-vs-bzip2-vs-lzma
* http://tseven.org/post/24072472743/using-tar-pigz-and-pv-to-compress-directories-and