gifts2017

Backup - не нравится готовое - сделай сам!

Опубликовал - - (Rebelx) в раздел Администрирование - Архивирование (backup)

Без бекапа по жизни - несколько не мой принцип отношения к данным. Но существующие программы, которые я видел, меня не устроили.
Поэтому приложив несколько интелекта я разработал пакет скриптов для создания инкрементальных бекапов.

Статья не окончена. Допишу полностью, если будут те, кому это интересно. или удалю, если никому не надо.

 

 

Требования следующие:

  • бекап должен быть инкрементальным и время от времени полным
  • формат должен быть открытым
  • программа должна быть бесплатной
  • возможность указания нескольких получателей (с учетом того, что не все могут быть доступны)
  • работать должно быстро
  • должно учитываться удаление файлов
  • должно храниться несколько копий, а устаревшие удалялись автоматически.
  • должна быть возможность назначать пароль для каталога
  • возможность выбора степени сжатия для каталога
  • возможность исключения файлов по каталогу / маске

 

Самая главная проблема - инкрементальный бекап. Многие программы могут делать время от времени полный, а между ними - инкрементальный. Но я не нашел программы, которая бы в случае если файлы не изменялись, не делала бы полный бекап.

Хотелось иметь возможность указания гранулярности анализа данных для формирования полных бекапов. Т.е. у меня несколько десятков каталогов для данных клиентов. И если данные изменились только в одном каталоге, то новый полный бекап нужно делать только для одного каталога. Но в тоже время, я не хочу в настройках указывать каждый каталог - состав постоянно меняется.

Для выполнения этих условий был рожден набор скриптов.

А именно три штуки:

MakeBackup.cmd - стартовый файл, который читает настройки из файла конфигурации.
Запускается без параметров, читает настройки из файла MakeBackup.cfg. Структура файла настроек следующая:

[SRC]
#В этом разделе указыватся источник файлов

#Первый параметр - каталог для архивирования
"C:\Program Files\Total Commander"

#Так же можно указать, какие файлы не требуется архивировать (/x) (указывается не маска файлов, а подстрока входящая в путь файла)
"C:\Program Files\Mdesktop" /x"logs\;.tmp"

#Для вложенного каталога хотим отдельный архив
"C:\Program Files\1cv82" /x"srvinfo\"
"C:\Program Files\1cv82\srvinfo

#Можно указать пароль (/p)
"C:\Program Files\Opera" /pSuperPasword
 
#Можно указать, что для каждого вложенного каталога будет сделан отдельный архив (/s)
D:\Books /s


#Можно указать степень сжатия (/m0...9, по умолчанию - 5)
D:\Photo /m0


[DST]
#Список каталогов - приемников

H:\Backup\
S:\Rebelx\Backup\

[REM]
#Данные в секциях с другими именами не анализируются

 

 продолжение - если кому-то будет интересно это продолжение

 

ниже - черновик

 

 

 
-LD Каталог лог-файлов =
-DS Каталог исходных файлов (возможно использование синтаксиса @filename) (обязательно)
-DD Каталог сохраненных файлов (обязательно)
-MX Маска файлов для исключения (возможно использование синтаксиса @filename) =
-PR Префикс имени архива = backup
-FF Частота создания полных архивов, в днях (рассчитывается с начала года), или W - еженедельно = W
-AT Тип архива: D - дифференциальный, F - полный, А - автоматический выбор = A
-HD Глубина сохранения логов, в днях: 0 - не удалять логи = 7
-BD Глубина сохранения полных копий: 0 - не удалять копии = 2
-7Z Путь к архиватору 7z = 7za.exe
-EX Расширение архива = 7z
-OP Дополнительные опции архиватора =

 

в качестве архиватора указывается 7z.cmd, который запускает 7z.exe с пониженным приоритетом:

@title 7z.cmd - running
start /LOW /B /WAIT 7z_4.65.exe %*

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
iBackup.zip
.zip 865,09Kb
03.08.12
107
.zip 865,09Kb 107 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Konstantin _Konstantin (konfed) 16.06.10 11:33
Тема, хоть и старая, но, наверное останеться актуальной до тех пор, пока будут существовать файлы на дисках, а появление решений такой задачи говорит о том, что идеального варианта не существует (наверное пока не существует - кто знает таковой - отзовитесь).
Статья интересная - автор, если сможешь - продолжай, особенно интересно решение 4 пункта функциональных возможностей (и есть ли у автора среди получателей DVD диск?), ну и среди пунктов возможностей может включить специфический для 1С - как быть в случае, если из базы кто-то не вышел.
2. - - (Rebelx) 16.06.10 12:21
ок. постараюсь сегодня дописать.

архивация на DVD не предусматривалась и не делалась.
У меня задача была - архивировать на внешний HDD когда нужный HDD подключался и на сервер время от времени.

специфичных задач архивации (1С, SQL) я тоже не делал - руки не дошли.
3. Владимир Казначеев (Mogidin) 16.06.10 12:37
жду продолжения, или хотя бы файликов, на которые можно посмотреть...
4. Владимир Казначеев (Mogidin) 16.06.10 12:42
(1) "как быть в случае, если из базы кто-то не вышел."
в начале скрипта послать сообщение net send'ом (если служба сообщений не отключена), предупредить юзверей. после паузы тем же net'ом (только уже не send, а другое, не помню как звать) обрубить все сетевые соединения (если это не критично), и браться за дело.
5. - - (Rebelx) 16.06.10 12:59
(3) выложил файлы. так же в архиве заготовки для архивации SQL баз, которая заглохла.
6. - - (Rebelx) 22.06.10 09:51
а дописать все некогда :(
8. - - (Rebelx) 13.11.11 20:09
а что именно интересно? о чем надо продолжение?
как это работает или надо новый функционал?
9. Andrey Krapivin (kr_andr) 23.11.11 10:59
10. - - (Rebelx) 23.11.11 11:37
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа