Как использовать многопоточность -для создания и извлечения tar.xz

Это работает и не будет вызывать локальный или удаленный DoS при правильной настройке:

(bandwidth=5000 jobs=8; \
 parallel      \
   --round     \
   -P $jobs    \
   --nice +5   \
   --delay 2   \
   --pipepart  \
   --cat       \
   -a urls.txt \
     wget                                \
       --limit-rate=$((bandwidth/jobs))k \
       -w 1                              \
       -nv                               \
       -i {}                             \
)
2
07.09.2020, 12:52
3 ответа
tar -c -I 'xz -9 -T0' -f archive.tar.xz [list of files and folders]

Это сжимает список файлов и каталогов в .tar.xzархив. Это делается путем указания аргументов, которые должны быть переданы подпроцессу xz, который сжимает tar-архив.

Это делается с помощью аргумента -Iдля tar, который сообщает tarкакую программу использовать для сжатия tar-архива и какие аргументы ей передать. -9указывает xzиспользовать максимальное сжатие. -T0указывает xzиспользовать столько потоков, сколько у вас есть процессоров.

15
18.03.2021, 23:07

Для старых tar это работает:

tar -cf -  list of files and folders| xz -9 -T0 >| archive.tar.T.xz
0
18.03.2021, 23:07

Вы можете использовать XZ_DEFAULTSили XZ_OPTпеременные окружения:

XZ _НАСТРОЙКИ ПО УМОЛЧАНИЮ рекомендуется использовать в качестве общесистемной конфигурации, обычно устанавливаемой в сценарии инициализации оболочки.

XZ _OPT предназначен для передачи параметров в xzпри запуске скриптом или инструментом, например. ГНУ tar. См. man xz.

Пример :с использованием нескольких потоков(-T0)и максимального уровня сжатия(-9):

XZ_OPT='-T0 -9' tar -cJf resultfile.tar.xz files_to_compress

Ссылка с последним GNU tar на bash или производной оболочке , также см. справочную страницу xz

5
18.03.2021, 23:07

Теги

Похожие вопросы