rainerscript :как войти в файл с именем $programname substring?

Дальнейший поиск показывает файл /usr/share/bash-completion/bash_completion, источником которого является файл ~/.bash_completion.

Отсюда и бесконечная петля.

Судя по всему, ~/.bash_completionпредназначен для пользовательских дополнений, а не для разделения вашего .bashrcфайла на самостоятельные -части.

Просто поместите скрипт для загрузки дополнений bash куда-нибудь в ~/.bashrcи назовите его выполненным.

0
09.09.2020, 23:14
1 ответ

На самом деле я чувствую себя бесполезным своим комментарием к ОП. Я провел еще несколько тестов, и вот надежный ответ, которым я хотел бы поделиться:

Создайте /etc/rsyslog.d/00 -local.conf со следующим:

template(name="AdminLog" type="string" string="/var/log/admin_%syslogtag:R,ERE,1,ZERO::(.*):--end%")

if ($programname == "admin") then {
  action(type="omfile" dynaFile="AdminLog")
  stop
}

systemctl restart rsyslog
logger -t admin:backup starting

В результате резервная копия /var/log/admin _получает журнал.

Примечания:

  • Я использую Ubuntu 20.04. Особенности платформы/версии -могут повлиять на ваши результаты.
  • Все изменения и команды были сделаны в sudo -s.
  • В шаблоне не обязательно использовать регулярное выражение. Нотация '%property :Field' была бы более эффективной. Это должно продемонстрировать, как использовать более сложное регулярное выражение. См. синтаксис для обеих операций замены свойств .
  • Обратите внимание, что в конце %syslogtag добавлено двоеточие, которое необходимо учитывать при синтаксическом анализе.
  • Используйте очень полезную тестовую страницу регулярных выражений для Rsyslog.
  • Создание новых файлов в папке, отличной от /var/log, представляет известные сложности и выходит за рамки запроса OP. Заставьте это работать с файлами в /var/log, а затем примите вызов отдельно, чтобы заставить его работать с другой папкой.
  • Обратите внимание, что действие использует параметр dynaFile .
  • Это также можно сделать, поместив результат шаблона в переменную с шаблоном exec _, а затем обработав его дальше. Вот пример страницы .
  • Другой способ создать регулярное выражение с помощью Rainerscript вместо использования шаблона — использовать re _функцию извлечения . Пример:
    set $.thefunction = re_extract($syslogtag,...)
0
18.03.2021, 23:05

Теги

Похожие вопросы