Я не думаю, что тут что-то новое, просто положу тут.
Бакапы делаются со снапшотов lvm. Поэтому все работает в фоне, и опция --one-file-system для tar в общем то не нужна.
Вот команда, которую я использую:
cd /path/to/mounted/*_lvsn
tar -c --exclude-caches --exclude-tag=.skipbackup . -f -| pbzip2 -c | ccrypt -e | pipebench > /path/to/backup.tar.bz2.cpt
tag .skipbackup (просто пустой файл, не то что CACHEDIR.TAG) позволяет не писать длинную строку с перечислениями всех путей, которые не нужны ( привет, /usr/share/locale).
Вот список моих исключений c их размерами:
/home/user/.cache/.skipbackup, 106M
/home/user/.gradle/caches/.skipbackup, 159M
/home/user/Downloads/.skipbackup, 14G
/home/user/.local/share/Trash/.skipbackup
/lost+found/.skipbackup
/usr/lib/.skipbackup, 827M
/usr/lib64/.skipbackup, 1.7G
/usr/share/.skipbackup, 1.7G
/usr/src/.skipbackup, 103M
/var/cache/.skipbackup, 231M
/usr/share/locale, 406M
В итоге размер раздела и его архива:
/root 6.8G, 834M
/home 43G, 9.49G
Пробовал вместо pbzip2 использовать lzma, второй работает в 5 раз медленнее при том же сжатии. Никакие способы раскочегарить использование ядер не увенчались успехом, ни сам по умолчанию, ни опции. Использует одно ядро и все.