Создание бекапов на сервере с подстановкой даты в имени архива
- AJIekceu4
- 02.12.2014
- 11 794
- 0
- 12.03.2019
- 6
- 6
- 0
- Содержание статьи
На файловом сервере возникла необходимость периодически создавать резервную копию расшаренной папки, но не включать в нее некоторые типы файлов. Сначала мы пользовались winrar, но потом перешли на 7zip, т.к. он является бесплатным, а его разработчик носит фамилию Павлов ;)
Описание
Итак, создадим следующий .bat файл:
backup.bat
"D:\путь_к_архиватору\7zip\7z.exe" a -t7z -mx8 -m0=lzma2 -mmt=8 -ssw -scsWIN -r0 -x@list.txt "D:\путь_к_папке_где_сохраняем_сам_бекап\backup_%date:~-10%.7z" "D:\путь_к_папке_которую_архивируем\"
Разберем подробнее что же означает каждая команда:
- "D:\путь_к_архиватору\7zip\7z.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 потоков.
Добавить комментарий