Программа hBackUp
... или очередной "велосипед"?. Резко появилась необходимость постоянного резервного копирования баз данных программы, документов бухгалтерии и БД «1С:Бухгалтерия» совпавшее с обнаружением ряда интересных возможностей инструмента разработки. Конечно аналогичных программы «тысячи», однако попытки найти подходящую наткнулись на «проблемы», выявляемые при их тестировании:
1. Платные, хотя и рекламно утверждалась их бесплатность;
2. Огромное число настроек backup, что на их изучение нужно «недели»;
3. Не сохраняли открытые в программах файлы.
Вот и решил сам создать «велосипед». По факту потрачена с отладками пара дней и оказалась, что эта программа работает гораздо быстрее, чем изученные и проверенные мной тиражные специализированные системы BackUp.
Замечу. Максимальная скорость сохранения достигается при расположении программы в любом каталоге на SSD диске, а ещё желательней PCI Exp 4.x.
Вызов программы. Возможно два варианта вызова:
1. Указав параметры командной строки, например: <имя диск или полного имени папки> <имя архива с полным путем доступа>. Пример вызова:
hBackUp <z:\IP Iagnatin_2> <d:\BackUp\IPJagn>
2. Или набор таких настроек располагается в файле 1251 кодировки –
BackUp.cfg. Пример из реального файла:
<x:\store\_Cash> <d:\BackUp\StoreCash> …
<z:\Чистая база> <d:\BackUp\BlankBase_1c>
Замечание. Обрамляющие знаки <> обязательны, т.к. в Windows их запрещено использовать в именах, вот и использую их для отделения информации.
Затем
вызов программы можно задать в «планировщике» операционной системы для запуска по расписанию, например вторник и пятница ночью. Используемые механизмы призваны дать максимальную скорость, по этому, где быстрее использовать команды ОС, то там они и используются.
Алгоритм. При запуске программы выясняется способ использования и при любом переносится информация в массив задания, который затем циклически обрабатывается:
1. Удаляю временную папку;
2. Создаю структуру каталогов архива;
3. Определяю список файлов для архивации;
4. Копирую файлы во временный массив для последующей паковки;
5. Создание архива сохраненных файлов внешней программой.
Замечу. Ни одна из программ, в том числе описываемая не может сохранить файлы открытые в монополь-ном режиме, например в процессе «ремонта» учетной системы или БД «1С», открытой в режиме «конфигуратора».
Программа бездиалоговая и без интерфейса, но размещу несколько картинок.
В процессе работы на экране описываются производимые в текущий момент времени её действия:
- Какую сейчас папку сохраняем;
- Для длительных элементарных операций отражается её суть;
- Описывается этап создания архива.
Если использование штатных средств ОС делает процесс быстрее, то они и используются.
Здесь работает консольный архиватор 7Z:
На указанном устройстве (папке) сохраняются файлы и именами, где программа добавляет дату и время создания архива. Реально примерно 35Gb сохраняются в архиве на моём оборудовании 100 минут... и в размере уменьшается в 8 раз относительно исходного размера:
P.S. Как обычно такие програмки размещаю с исходным кодом, т.ч. можете их дорабатывать или изучать алгоритмы, т.к. код документирован, а
пожелания по доработкам и критика приветствуется