Любые библиотеки python для анализа файлов конфигурации apache?

Любые библиотеки python для анализа файлов конфигурации apache или, если не python, кто-нибудь знает об этом на других языках (perl, php, java, C#)? Поскольку я смогу их переписать на питоне.

Вопросы, просящие нас порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой внешний ресурс, не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам.

GhostCat 10.05.2017 15:17

Иногда даже самоуверенные ответы хороши, когда тебе нечего делать. Теперь мне это больше не нужно, так как вопрос задавался ранее, но иногда полезно получить рекомендации, даже если они являются самоуверенными.

daniels 10.05.2017 15:54

Скажем так: я не знаю, был ли этот вопрос актуальным 9 лет назад. Но я уверен, что он был бы закрыт, если бы его спросили сегодня; поскольку это явно нарушает правило «без рекомендаций». И вы видите; вот что происходит - все эти ответы (и на самом деле могут быть только) только ссылка. Итак, рано или поздно ... эти ссылки могут сломаться; и тогда ответ оказывается бесполезным.

GhostCat 10.05.2017 15:59

Куда бы вы порекомендовали человека пойти / спросить, если хотите узнать, какие варианты у него есть для выполнения вещи x и / или каков опыт людей с этим (при условии, что те, кто отвечает, также использовали то, что они рекомендовали)? Честный вопрос. Просто хочу знать, где еще можно получить такую ​​обратную связь, если SO - не подходящее место.

daniels 10.05.2017 22:04

В сети stackexchange.com есть "новый" сайт рекомендаций по программному обеспечению, поскольку я не знаю. Вероятно, эту близкую причину следует усилить, чтобы указать на такую ​​возможность.

GhostCat 10.05.2017 22:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
12
5
11 120
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Насколько мне известно, не существует библиотек Python, но вот одна из perl: http://packages.debian.org/sid/libapache-configfile-perl

Package: libapache-configfile-perl
Priority: optional
Section: interpreters
Installed-Size: 124
Maintainer: Michael Alan Dorman
Version: 1.18-1
Depends: perl (>= 5.6.0-16)
Description: Parse an Apache style httpd.conf configuration file

This module parses the Apache httpd.conf, or any
compatible config file, and provides methods for
you to access the values from the config file.

Если вы все же переписываете его на Python, обновите свой пост, указав имя вашего пакета на PyPI! :)

ZConfig, как мне кажется, раньше поставлялся со схемой для разбора файлов конфигурации Apache; похоже, больше нет, но он ориентирован на синтаксический анализ файлов этих типов и превращение конфигурации в объект Python. Беглый взгляд на документацию показывает, что не составит большого труда настроить схему ZConfig, соответствующую любым параметрам Apache, которые вы хотите проанализировать и проверить.

http://pypi.python.org/pypi/ZConfig/2.6.0

У группы Red Hat Emerging Technologies есть Авгий (написанный на C, но с доступными привязками Python), универсальный инструмент конфигурации системы с «линзами» для чтения и записи нескольких различных форматов файлов конфигурации. Я бы рассмотрел вопрос о наличии линзы для Apache.

Для файлов конфигурации Apache не существует линзы.

Teddy 03.03.2011 13:42

В Debian / Ubuntu использование библиотеки pypi pypi.python.org/pypi/python-augeas, похоже, полагается на то, что launchpad.net/ubuntu/+source/augeas сначала устанавливается в целевой системе.

ThorSummoner 30.12.2015 23:50
Ответ принят как подходящий

Я нашел здесь интересный парсер Apache Config для python: http://www.poldylicious.de/node/25

Упомянутый парсер конфигурации Apache не задокументирован, но он работает.

Ссылка не работает.

gye 16.07.2019 16:52

Также выпущен один новый парсер.

В нем по-прежнему отсутствует документация, но он довольно прост для понимания.


Пример

import apache_conf_parser
import pprint

DEFAULT_VHOST = '/etc/apache2/sites-available/000-default.conf'

vhost_default = apache_conf_parser.ApacheConfParser(DEFAULT_VHOST)

print vhost_default.nodes
print vhost_default.nodes[0].body.nodes

pprint.pprint( 
    {
        i.name: [i.arguments for i in vhost_default.nodes[0].body.nodes]
    }
)

Я смог заставить это работать. Пришлось использовать много интерактивных help(), dir() и .__dict__, но это тоже то, что делает Python потрясающим.

ThorSummoner 31.12.2015 00:45

Последнее обновление в 2011 году. Интересно, как это работает с более поздними версиями Apache.

nealmcb 05.06.2019 03:34

В 2016 году появилась новая библиотека, написанная с использованием pyparsing:

https://pypi.python.org/pypi/parse_apache_configs/

Имеет несколько шероховатостей, но позволяет мне добавлять директивы и сохранять в новый файл.

Источник в https://github.com/alextricity25/parse_apache_configs

Другие вопросы по теме