LINUX.ORG.RU

Скрипт для бэкапа OpenLDAP-баз


0

1

Собственно, вот выложил: http://sysadminblog.ru/blog/ldap/182.html
Там же немного о логике его работы.
В какой-то степени имитирует инкрементальный бэкап, но... с точностью до наоборот: хранится текущая версия полностью и кучка патчей для отката обратно при необходимости.
Пока что нет логики lock-файла, а также не ограничена никак глубина патчей. Но в принципе для каталога, который реально модифицируется не шибко часто количество этих патчей будет не таким уж большим, да и по факту обычно бывает нужна самая свежая версия или что-то из недавних.
Соответственно, чистить ненужные патчи можно по крону find'ом с exec rm -f {} \; :)

Комменты приветствуются.

P.S. В будущем возможен мув на SVN, но надо подумать

★★★★★

Последнее исправление: DRVTiny (всего исправлений: 1)

имитирует инкрементальный бэкап, но... с точностью до наоборот: хранится текущая версия полностью и кучка патчей для отката обратно при необходимости.

Не могу понять, зачем именно так?

find'ом с exec rm -f {} \; :)

find -delete :)

power
()
Ответ на: комментарий от power

>Не могу понять, зачем именно так?
В случае с OL наиболее частая поломка - отказ баз BDB/HDB подниматься после крепкого падения ФС (лечится чаще всего, но бывает, что даже легче бэкап поднять, если он не слишком здоровый). И на этот случай нужен свежий бэкап, а с учётом того, какое количество сервисов завязано на LDAP - как можно быстрее. Гораздо реже бывает ситуация, когда что-то по ошибке было удалено/изменено и нужно откатиться назад - для этого нужно последовательно наложить патчи на файл свежего бэкапа.
У меня есть ещё мысль добавить контрольные отметки, тогда это будет точно инкрементальный наоборот, но... непонятно собственно, по какому принципу эти отметки лучше ставить. Есть мысль, что по размеру накопленных diff'ов лучше сделать, тогда это не будет чисто формально хотя бы.

DRVTiny ★★★★★
() автор топика

Спасибо за скрипт, может пригодится. Только одно НО:

ldapmodify -x -D "$BIND_DN" -w "$BIND_PW" <<EOF
Пароль лучше никогда не передавать через командную строку, так как в linux без специальных патчей и настроек любой пользователь может посмотреть командную строку любого процесса через /proc. Так что теоритически, на многопользовательских системах кто-нибудь может подсмотреть пароль. Лучше пиши пароль в файл с правами 0600, лежащий где-нибудь во временных директориях, и подсовывай его утилитам ldap через опцию -y.

Deleted
()
Ответ на: комментарий от Deleted

mironov_ivan, спасибо за идею! Действительно, можно перехватить пароль при желании, я как-то не подумал. На перехвате временных файлов и готовых дампов сконцентрировался, а это упустил из вида.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от vasily_pupkin

vasiliy_pupkin, насчёт операционного атрибута modifyTimestamp - не в кассу. Я говорил о том, как часто стоит сохранять полный бэкап вместо «патча». Просто если слишком много патчей этих, а откатываться далеко нужно, то неудобно их долго и нудно накладывать, к тому же время - деньги. Вот я и думаю, как их делать:
1) По количеству накопленных патчей (например, на каждые девять патчей один полный дамп)
2) Что по-моему логичнее - по суммарному размеру накопленных патчей. Например, при достижении 5Мб делать полный дамп. Но здесь нужно индивидуально будет настраивать и логика скрипта будет ещё сложнее
3) Просто по факту того, что прошло больше N дней и есть необходимость создания дампа. Например, если прошло >= 3-х месяцев - оставить сделать дамп.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от vasily_pupkin

>Чем это лучше slapcat?
Что лучше, куда лучше? :)
Я и юзаю slapcat, LDAP_URI нужен для чтения/изменения конфигурации сервера. Вся информация о базах читается из cn=config + там база переводится на время slapcat в read-only.

DRVTiny ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.