- Содержание статьи
На файловом сервере возникла необходимость периодически создавать резервную копию расшаренной папки, но не включать в нее некоторые типы файлов. Сначала мы пользовались winrar, но потом перешли на 7zip, т.к. он является бесплатным, а его разработчик носит фамилию Павлов 😉
Описание
Итак, создадим следующий .bat файл:
backup.bat
"D:путь_к_архиватору7zip7z.exe" a -t7z -mx8 -m0=lzma2 -mmt=8 -ssw -scsWIN -r0 -x@list.txt "D:путь_к_папке_где_сохраняем_сам_бекапbackup_%date:~-10%.7z" "D:путь_к_папке_которую_архивируем"
Разберем подробнее что же означает каждая команда:
- «D:путь_к_архиватору7zip7z.exe» — путь к папке, где лежит исполняемый файл архиватора, на 64 битных системах обязательно используйте 64 битную версию архиватора 7zip, т.к. она дает очень большой прирост в скорости архивирования по сравнению с 32 версией.
- a — как не трудно догадаться, это команда для добавления файлов в архив.
- -t7z — тип архива, в нашем случае это 7z.
- -mx8 — метод компрессии (8 — высокая степень сжатия), опытным путем выяснили, что в нашем случае это оптимальный вариант, т.к. архивы получаются достаточно сжатыми, а время на архивацию тратится не много. Можете самостоятельно поиграться с этим параметром.
- -m0=lzma2 — используемый алгоритм сжатия, поддерживает многопоточность, как раз то, что нам и нужно.
- -mmt=8 — количество параллельных потоков для сжатия, если не нужны свободные ресурсы, то ставим mmt=количеству ядер процессора.
- -ssw — заставляем 7zip в принудительном порядке упаковывать и те файлы, которые открыты другими пользователями для записи, очень важная команда, позволяющая упаковывать даже те файлы, которые используются пользователями в момент архивации (забыл закрыть файл перед уходом с работы, делает отчет в 3 часа ночи и т.д.).
- -scsWIN — (Set charset for list files) кодировка для файлов.
- -r0 — тип рекурсии, т.е. включаем все не пустые подпапки.
- -x@list.txt — список исключаемых расширений файлов, сам список задается в файлике list.txt, который должен лежать в той же папке, где и наш .bat файл.
list.txt
*.3gp *.avi *.cab *.exe *.flv *.gdb *.iso *.msi *.rar *.mp3 *.mp4 *.vob *.wmv *.zip
- «D:путь_к_папке_где_сохраняем_сам_бекапbackup_%date:~-10%.7z» — тут все очевидно, backup_%date:~-10%.7z это имя нашего архива, к которому прибавляется дата. То есть при запуске скрипта 13.05.2014 будет создан архив вида «backup_13.05.2014.7z».
- «D:путь_к_папке_которую_архивируем» — тут тоже все должно быть понятно.
Для информации:
Папка до сжатия

После сжатия и исключения некоторых типов файлов (20…30 Гбайт), в основном документы Word и Excel.

Процесс архивации папки на скриншоте выше, с указанными в .bat файле настройками занимает около 2,5 часов на Intel Xeon E5640 с использованием 8 потоков.

Добавить комментарий