$Id: README 39 2014-08-30 08:57:38Z abalama $ Project based on CTK perl -Ilib bin\mbutiny -d -c share\conf\mbutiny.conf void foo bar baz Coming soon... # FEATURES * excludemode при котором строится полное детальное дерево всех файлов в указанных папках и все пустые папки в том числе с помощью File::Find. Затем c пом. File::Find и File::Copy структура фильтруется - выбрасывается содержимое описанное секции и каждый файл копируется (с правами!) во временную папку temp (File::Temp). После успешного копирования вся структура архивируется соответтствующей утилитой. См. уже подготовленый пример в функции backup -> Step 01a * Коллектор это часть App::MBUtiny, но существует интеграция с MonM. MonM смотрит, если есть установленный модуль App::MBUtiny то он пытается построить соответвующий грид по данным коллектора Коллектор это проект на базе WWW::MLite выполняющий функцую API и представляет собой единственный файл share/collector.cgi. Обмен - происходит исключительно в формате XML! коллектор состоит из mbucollector.cgi и модулей App::MBUtiny::Collector + App::MBUtiny::Collector::* Коллектор берёт конфигурацию из установленного локально проекта App::MBUtiny используя файл extra/collector.conf. Основные функции коллектора: - [check] Получение состояния готовности коллектора - [upload] Аплоадить бэкапы. После аплоадинга возвращается статус операции, путь и #ID заведенной записи бэкапа. Входные данные передаются как POST запрос Используется HTTP POST multipart механизм передачи данных. В качестве параметров должны выступать: - URL/URI (https://user:password@site.com/path/) - user = , если из соображений security нельзя передавать в URL - password = , если из соображений security нельзя передавать в URL (- action = upload -- необязательный параметр) - host = имя хоста - file = имя файла - data = данные передаваемые из сжатого файла - sha1 = SHA1 для проверки (необязательный параметр) - md5 = MD5 для проверки (необязательный параметр) - . . . = . . . ! user и password уходят в стандартную авторизацию если это требует сервер - [fixup] Выполнять фиксирование пройденных бэкапов. Если была заливка на текущий коллектор то смотрится переданный параметр #ID. Если тип стоит -- внутренний, то значит новая запись не заводится, а модифицируется указанная. После фиксации возвращается стaтус операции и #ID заведенной (измененной) записи Фуксация выставляет дату finish, потому дёргать нужно даже когда заливаем бэкап на сервер коллектора. Входные данные передаются как POST запрос, параметры помещены в XML!! В качестве параметров должны выступать: - ID - Date stamp - Agent host (кто делает бэкап) - Agent IP - Agent section name - Server host (куда делается бэкап) - Server IP (берется из заголовков настройки или nslookup утилитлй как на CBWI) - Status of operation (1=OK/0=ERROR) - Date start - Date finish - File name - File size - File MD5 sum - File SHA1 sum - Comment (из секции конфигурация по хосту Comment) - Message (проставляется в момент фиксапа, содержит поле сообщения статуса операции (error) с данным файлом или (message) при успешном обращении к коллектору) Далее эти данные отображаются на WEB интерфейсе коллектора - [list] Список бэкапов type=1 (имён файлов на коллекторе) для данного хоста - [delete] Удалить бэкап (по его имени на коллекторе). При этом происходит удаление ФИЗ.ФАЙЛОВ всех с типом type=1 из списка ... и все type=0 из списка ... если в секциях стоит признак FixUp on. Удаление в базе происходит путём установкой date_finish = NOW(). Удаление происходит по имени файла и другим атрибутам, возможно удаление по ID. Стоит заметить, что если стоит в Local, FTP и HTTP секции FixUp on то нужно выполнить удаление и там! Для этого нужно сделать аналог процедуры-интерфейса fixup под именем del Дополнительные функции коллектора, написанные для monm: - [status] Получить состояние по данному (или всем) хосту (хост униклен !!) и имени файлу также возможно получение статуса (по хосту и) дате. По умоланию - текущей дате. Без аргументов вернутся состояние всех бкапов прошедших за текущую дату. Возможно проверить состояние по ID записи. Доступно со стороны monm Вернется для каждого хоста: - #ID - Status (OK/ERROR) - ... другие поля ... - Message (если указан атрибут verbose=1) - Comment (если указан атрибут verbose=1) Входные данные передаются как POST запрос, параметры помещены в XML!! - [download] Скачать бэкап (по его имени файла или ID на коллекторе). Доступно со стороны monm