Создание бекапов на сервере с подстановкой даты в имени архива

  • 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:\путь_к_папке_которую_архивируем\" - тут тоже все должно быть понятно.

Для информации:

Папка до сжатия

backup

 

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

backup2

 

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

Была ли эта статья Вам полезна?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.