воскресенье, 7 октября 2012 г.

7zip - быстро архив.

Быстрое копирование в архив диска "С" без сжатия - 


@echo off
set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%

7z.exe a -mx0 -mmt -ms=off -ssw "d:\test_%now%.7z" -r "c:\" 



-mx0 - не сжимать
-mmt - мультипроцессорность
-ms=off не делать solid архив
-ssw упаковывать открытые файлы

В итоге скорость такой "упаковки" до 200 Мб/c и выше, зависит от HDD.

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

7z u "D:\test.7z" -r -u- -up0q3x2z0!"D:\diff-DD.MM.YY_test.7z" "C:\"

При этом:


Полный архив изменяться не будет, благодаря опции -u-;


Если файл попал в полный архив, но к моменту создания разностного архива был удален из исходного каталога, он будет удален при распаковке разностного архива поверх полного, за это отвечает опция q3;


Если файл в исходном каталоге старее чем файл в полном архиве (не важно, по какой причине), он будет добавлен в разностный архив и при его распаковке поверх полного архива заменит более новый, за это отвечает опция x2.




Если хотим применить самое быстрое сжатие "deflate64"  

7z.exe a -mx1 -mm=deflate64 -mmt -ms=off -ssw "d:\test_%now%.7z" -r "c:\"


В этом случае физическая скорость создания архива до 15 Мб/c, у меня с 19 Гб копии до 9Гб ужалось. Положим можно применять при закидывании на 100Mbit NAS.