Многопоточная компрессия и tar
Сколько можно? :) Ядер все больше и больше, а
$ tar -cjf /mnt/_backup/`date '+%Y-%m-%d_%H-%M-%S'`.tbz2 /home
как работал в один поток, так и работает.
Есть два многопоточных решения:
- pbzip2 - параллельный bzip
- pigz - параллельный gzip
$ tar -c /home | pbzip2 -vc -9 -p7 /mnt/_backup/`date '+%Y-%m-%d_%H-%M-%S'`.tbz2
Опцией -p# можно управлять количеством ядер, которые будет использовать архиватор. Нормально - это N-1.
Аналогично и для gzip
$ tar -c /home | pigz -vc -9 -p7 /mnt/_backup/`date '+%Y-%m-%d_%H-%M-%S'`.tbz2
С удивлением открыл для себя, что - в bash по дефолту означает stdout. И
$ tar -cf - file
будет использовать в качестве файла stdout. :)
Категории: HowTo