[devel] awk in initscripts
Andrey Orlov
=?iso-8859-1?q?cray_=CE=C1_neural=2Eru?=
Пн Янв 12 11:38:10 MSK 2004
Поскольку в качестве примера неудачного решения использовали конфиги
экземпляров zope....
On Monday 12 January 2004 01:26, Peter V. Saveliev wrote:
> Хочется услышать возможные возражения против использования awk в
> инитскриптах прежде, чем я возьмусь это делать.
> 2) можно без нужды не плодить директории в /etc/sysconfig. как это сейчас:
> для каждой сессии того же vtund пришлось сделать свой файлик на манер
> конфига экземпляра zope. Субъективно бесит, ей-Аллаху.
Я не против использования awk для обработки конфигов,
но я против того, что бы использовать его для того, чбы слить
все конфиги в один файл, как это можно было бы сделать с
экземплярами Zope: так как такой подход как
devel.path = ...
devel.port = 8080
hosting.path = ...
hosting.port = 8180
Равно как и такой:
[devel]
path = ..
port = 8080
[hosting]
path = ...
port = 8180
Объективно бесит, хотя с помощьюе awk реализовать их
разбор можно достаточно легко.
И так, почему конфиги экземпляров Zope лежат в отдельных
файлах:
1. В общем случае, каждый экземпляр Zope управляетя разными
людьми, которым нужно давать независимый доступ;
2. Если файл одного из экземпляров будет испорчен неверным
синаксисом (например, файл devel)
то остальные экземпляры останутся работоспособны;
3. Перенос экезмпляров на другой хостинг, равно как их бакап может быть
проделан независимо;
4. Создание нового экземпляра на основе старого делается командой cp ;),
что тоже удобно.
5. Возможно пакетирование экземляров Zope в rpm и т.п.
C vtun довод в виде разделения прав не так актуален, но чслово,
работать с десятком файлов идентичной структуры намного удобнее,
чем с одним файлом, поученным их слиянием. Причем, это верно
не только для конфигов, но и для текстовых статей и для файлов
с исходным кодом: разбивка на мелкие файлы, каждый из которых
реализует маленький кусочек и упорядочение этих файлов в единый
проект сейчас норма.
Субъективно, мое мнение, ситуацию с конфигами можно развивать
в одном из двух направлений:
1. Создать единый реестр, аналогичный win32;
2. Максимально гранулировать текущие конфигурационные файлы;
И в другом случае потребуется создание специальных средств: диспетчера
реестра (1) или специальной файловой системы (2). Традиционно, последние
неск лет, развитие линукс идет по 2-му пути. Можно попытатся спорить
об их эффективности, но спор этот бессмысленен, т.к. в дальней перспективе
оба пути сходятся (функционально) к одному и тому же решению. В то же время,
с точки зрения такой опции, как управления правами к конфигам, 2ой путь в случае
линукс намного более приемлем.
Наконец, довод против awk: если уж делать единый конфиг (не важно, для Zope, для network
или еще для чего) то не смотря на всю мою любовь к awk ;), есть продвинутые процессоры
для генерации парсеров их и стоит использовать: составить язык конфигурационных
файлов и парсить его. AWK - для обработки логов и т.п. работы, где он очень сильно на
своем месте, в отличие от применения в качестве синтаксического процессора.
ЗЫ: Опять же как довод против слияения в один файл - традиционно, последние
несколько лет, одно из самых распространенных предложений: "давайте для файла
что-то-там.conf создадим каталог что-то-там.d", и создают.
ЗЗЫ2all: Кстати, мбть пропатчить в этом направлении httpd ? Можно было бы
устанавливать новые пакеты и активировать подсистемы без извратов на основе
sed, которые, кстати, не всегда работают....
--
WthBstRgrds -- Андрей Орлов --
--- http: www.neural.ru, mail: cray на neural.ru, jid: cray на altlinux.org ---
----------------------------------------
Подробная информация о списке рассылки Devel