[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Несколько вопросов вразброс



27.06.2012 17:29, "Артём Н." пишет:
27.06.2012 12:22, Igor Chumak пишет:
26.06.2012 20:14, "Артём Н." пишет:
26.06.2012 12:54, Igor Chumak пишет:
25.06.2012 18:03, "Артём Н." пишет:
Я "наворачиваю" не для того, чтобы "круто на баш написать" и не из-за проблем с
головой, а для того, чтобы попробовать TDD (или хотя бы просто unit тесты) там,
где его обычно не используют... На перспективу. Пока что, не особенно хорошо
получается. :-)


Было бы интересно посмотреть.
Да что там интересного? Я только пытаюсь, пока-что. Взял небольшую задачу,
которую требуется выполнить. Конкретно: требуется бэкап-скрипт. Но нужно
сохранять не только иерархию каталогов, но и некоторые служебные данные: LVM,
LUKS заголовки, дамп БД и т.п.. Причём, используя для бэкапа тот же самый
rdiff-backup, который используется для сохранения каталогов.
Каталоги для сохранения - в отдельном списке.
Развернуть bacula будет быстрее ;)
Но не лучше:
1. Bacula Не подходит для такой простой задачи.
2. Всё, что мне нужно, делает rdiff-backup.
3. Сделав, используя готовое решение, я не получу того, что мне нужно.

Это мы проверяем скрипт на связность тегов ###TESTING и ###/TESTING?
А смысл?
Это я вырезаю всё, что между тегами. Смысл - убрать всю тестирующую фигню и
получить на выходе готовый скрипт.

grep "###/*TESTING" script.sh выведет теги на экран, глаз несвязность и так
заметит. Единоразово прокатит, а автоматически проверять - не вижу смысла.
См. выше.


ИМХО автоматическое генерирование скриптов - еще 1 способ выстрелить себе в ногу ;)
Как-то все сложно.. Зачем TDD в обертке вокруг rdiff-backup?
Ради изучения TDD.
Я вижу процесс
архивирования так:
прочитали конфиг || свалились по ошибке
запустили pre-backup скрипт || свалились по ошибке
Он состоит из нескольких независимых действий. Как отследить все ошибки?
Действия очень даже зависимые. Если свалились при ошибке при чтении конфига - нет смысла в дальнейшем выполнении. Не отработал pre-backup - не прошел дамп mysql'я - нет смысла в backup'e, ибо неизвестно что в него попадет
И т.д.
запустили backup || свалились по ошибке
Так и делаю. Сам backup - просто запуск rdiff-backup с нужными параметрами.

Но есть два типа бэкапа: полный и декрементальный. Скрипт должен определить
какой делать (к примеру, в случае полного бэкапа, не нужно удалять старые (да,
если запустить rdiff-backup --remove-older-than, он сам определит нужно ли
удалять, но так неинтересно)).

Это да.. ;)

-куть
не вижу я здесь места для 100500 вложенных функций с кучей параметров ;)
Там и нету 100500. Всего два уровня. :-)


Что-то мне сдается, что TDD в этой задаче не к месту. Инструмент должен упрощать жизнь, а не усложнять.



Reply to: