rsyslog не записывает файл динамического журнала

Стандартно:

LC_ALL=C find /path ! -name '*[!0-9.]*' -type d

То есть список файлов типа каталог, имя которого не содержит символов, кроме десятичной цифры или ..

2
16.04.2020, 16:18
1 ответ

Чтобы использовать динамические имена файлов, вам нужно использовать шаблон. Это имя строки (, обычно DynFileв примерах ), и интерполирует значения %property%в строке при использовании. Чтобы использовать шаблон в устаревшем синтаксисе, вам нужно добавить к нему префикс ?. Попробуйте

.
$template DynFile,"/var/log/apps/%programname%.log"
:programname, startswith, "myapp-" {
  ?DynFile
  stop
}

Не -устаревший синтаксис немного более явный и иногда может быть более удобочитаемым. На самом деле вы используете встроенный модуль omfile . Осторожно, шаблоны имеют 2 различных применения :как динамические имена файлов и как формат для записи данных. Однако для простых строк они определяются таким же образом, например:

template(name="myfile" type="string"
     string="/var/log/apps/%programname%.log")

if ($programname startswith "myapp-") then {
     action(type="omfile" dynaFile="myfile")
     stop
}

Ключевые слова, такие как dynaFile, должны быть написаны точно. Обратите внимание, что action()имеет параметр ключевого слова template=.... То есть предоставить шаблон для данных, записанных в файл.

3
19.03.2021, 02:28

Теги

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