Как перехватить блок if-then (и необязательно еще) из файла конфигурации rsyslog?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как перехватить блок if-then (и необязательно еще) из файла конфигурации rsyslog?

Сообщение Anonymous »

Я хотел бы перехватить следующие условные блоки из файла конфигурации rsyslog:

Код: Выделить всё

if (($fromhost-ip == '127.0.0.1') and ($syslogfacility-text == "local7")) then {
if (re_match($msg, "^[ ]*[A-Z0-9]{4}\\|[^|]+\\|")) then {
action(type="omfile" DynaFile="a_DynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
} else {
action(type="omfile" DynaFile="b_malformedDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
}
}

if (($fromhost-ip == '127.0.0.1') and ($syslogfacility-text == "local6")) then {
action(type="omfile" DynaFile="qradarDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
}
else { action(type="omfile" DynaFile="b_malformedDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on") }
Я пытаюсь перехватить основную часть условия (($fromhost-ip == '127.0.0.1') и ($syslogfacility-text == "local7"))
code> из первого блока и всего тела игнорируя вложенные блоки :

Код: Выделить всё

        if (re_match($msg, "^[ ]*[A-Z0-9]{4}\\|[^|]+\\|")) then {
action(type="omfile" DynaFile="a_DynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
} else {
action(type="omfile" DynaFile="b_malformedDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
}
А если произошел еще и блок else, но только из основного 1-го уровня, то для 2-го примера получим все три группы:
  • Код: Выделить всё

    (($fromhost-ip == '127.0.0.1') and ($syslogfacility-text == "local6"))
  • Код: Выделить всё

    action(type="omfile" DynaFile="qradarDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
  • Код: Выделить всё

    action(type="omfile" DynaFile="b_malformedDynFile" dynaFileCacheSize="128" fileCreateMode="0644" dirCreateMode="0755" dirGroup="log" fileGroup="log" asyncWriting="on")
Я пытаюсь получить это с помощью шаблона if([^}]*)|then([^}]*)| else([^}]*), но он кажется слишком общим и останавливается на первой фигурной скобке в теле then

Подробнее здесь: https://stackoverflow.com/questions/785 ... onfig-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»