Поддержка динамических имен файлов

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

Некоторые программы создают имена выходных файлов, которые могут изменяться. Изменения могут быть основаны на определенных критериях (например, текущий день, месяц и год) или на именах файлов, в которые входит увеличивающийся порядковый номер. В таких случаях можно задать шаблон имени файла, а не фактическое имя файла. При указании шаблона имени файла можно использовать два формата:
  • Регулярные выражения (предпочтительно).
  • Синтаксис динамических имен файлов IBM® Tivoli Universal Agent (не рекомендуется)

Шаблоны имен файлов с регулярными выражениями

В шаблонах имен файлов можно использовать регулярные выражения в соответствии с синтаксисом International Components for Unicode (ICU), который описан в разделе Регулярные выражения ICU). Чтобы использовать эту функцию, включите переключатель Имена файлов, соответствующие регулярному выражению на странице Дополнительная информация о группе атрибутов Файл журнала. Если вы задаете шаблоны с регулярными выражениями, то нужно также выбрать опцию в списке Если соответствует несколько файлов на странице Дополнительная информация о группе атрибутов Файл журнала, чтобы указать, как нужно выбирать последний совпадающий файл.

Прим.: Регулярные выражения - это предпочтительный метод создания шаблонов имен файлов.

Дополнительную информацию о конфигурировании дополнительных свойств группы атрибутов Файл журнала смотрите в разделе Мониторинг файла журнала, шаг 6. Например, задан шаблон имени файла

d:\program files\logs\tivoli.*

Этот шаблон используется для поиска имен файлов, начинающихся с tivoli в каталоге d:\program files\logs. Регулярное выражение можно задать только для имени файла; его нельзя задать для имени каталога.

Синтаксис динамических имен файлов

При использовании синтаксиса динамических имен файлов одновременно можно выполнять мониторинг только одного файла. Провайдер данных файлов просматривает все файлы в указанном каталоге и ищет файлы, соответствующие заданному шаблону. Провайдер данных файлов всегда отслеживает последний соответствующий файл с именем, которое содержит наибольший порядковый номер или наибольшее значение даты/времени. Файл для мониторинга определяется по имени файла, а не по созданию файла или каким-либо другим критериям.

Шаблоны имен файлов могут содержать любое число частей. Например, Log{###} задает одну часть имени файла (например, Log010 или Log456). В именах файлов, состоящих из нескольких частей, символы шаблона можно разместить в любой части имени файла или в нескольких частях. Например, aaa.bbb{???}.ccc и aaa.bbb{???}.ccc{###} - это допустимые шаблоны.

Прим.: Для создания шаблонов имен файлов рекомендуется использовать регулярные выражения, а не синтаксис динамических имен файлов; дополнительную информацию о регулярных выражениях смотрите в разделе Шаблоны имен файлов с регулярными выражениями.

Ниже приведены примеры спецификации шаблонов имен файлов:

{########}.abc
Обозначает файлы с именем, состоящим из 8 цифр, и с расширением .abc, например, 10252006.abc или 10262006.abc. Отслеживается файл 10262006.abc, так как 10262006 больше, чем 10252006.
{########}.*
Обозначает файлы с именем, состоящим из 8 цифр; расширение игнорируется. Примеры: 20061025.log, 20061101.log и 10252006.abc. Отслеживается файл 20061101.log , так как 20061101 - это наибольшее число.
{######??}.abc
Обозначает файлы с числовыми именами, которые содержат 8 символов и с расширением .abc; последние две позиции в имени файла игнорируются. Примеры: 02110199.abc, 02110200.abc и 021101AZ.abc. Отслеживается файл 02110200.abc, так как 021102 - это наибольшее число.
Console.{######}
Обозначает файлы с именем Console, а расширение содержит 6 цифр. Примеры: Console.000133, Console.000201 и Console.000134. Отслеживается файл Console.000201.
IN{######}.log
Обозначает файлы, имя которых начинается с символов IN, после которых идут шесть цифр, и с расширением .log. Примеры: IN021001.log, IN021002.log и IN021004.log. Будет производиться мониторинг файла IN021004.log.
PS{###}FTP.txt
Обозначает файлы, имя которых начинается с символов PS, после которых идут три цифры, а затем - символы FTP, и с расширением .txt. Примеры: PS001FTP.txt, PS005FTP.txt и PS010FTP.txt. Отслеживается файл PS010FTP.txt.
Рекомендации для создания шаблонов имен файлов:
  • Заключайте символы шаблона в имени файла в фигурные скобки {}. Символы шаблона в фигурных скобках указывают, что используется шаблон имени файла.
  • Чтобы указать, что расширения файлов или замыкающие символы в имени файла нужно игнорировать, используйте символ подстановки * (звездочка). Например, Myapp{###}.log* указывает, что любое имя файла, начинающееся на Myapp, после чего следуют 3 цифры и .log, считается совпадающим, независимо от последующих символов.

    Звездочку следует указывать после фигурных скобок ({ }) и нельзя указывать в начале имени файла. Если звездочка используется в расширении имени файла, то звездочка ставится сама по себе.

    Примеры правильного использования символа подстановки (*):
    err{??}.*
    error{$}.*
    Примеры неправильного использования символа подстановки (*):
    error.20*
    Перед звездочкой (*) нет фигурных скобок.
    error*.{###}
    Звездочка стоит не в конце имени файла.
    error.*
    Перед звездочкой (*) нет фигурных скобок.
  • Если задано конкретное расширение файла, то рассматриваются только файлы с этим расширением.
  • Чтобы указать каждый цифровой элемент в имени файла, используйте символ решетки (#).
  • Используйте символ вопросительного знака, чтобы исключить элемент, который не служит в качестве критерия поиска при определении подходящего имени файла.
  • Используйте символ доллара ($), чтобы указать либо любой символ, либо отсутствие символа. Например, чтобы указать файлы Log и LogA, укажите Log{$}. На использование символа доллара накладывается несколько ограничений. Если в качестве префикса имени файла используется один или несколько символов доллара (например, {$$$$$$}_abc.log, то число этих символов должно точно совпадать с числом символов в имени файла в этой позиции. Кроме того, нельзя задать символы доллара в нескольких позициях шаблона имени файла (например, {$$$}b{$$$}.log- это не abc.log). Учитывая эти ограничения для символа доллара, используйте шаблоны имен файлов с регулярными выражениями, если имена файлов содержат неопределенное число символов.
  • Общее число символов решетки и вопросительных знаков, заключенных в фигурные скобки, имеет значение. Оно должно точно соответствовать части имени файла. Например, если указан шаблон AA{####}, то провайдер данных файлов будет искать файлы вида AA0001. Имена файлов вида AA001 или AA00001 не рассматриваются.
  • Шаблон имени файла, константа и числовые части должны точно соответствовать имени файла. Например, если указан шаблон AA{###}, то провайдер данных файлов будет проверять AA101. Такие имена файлов, как XAA101, AA222X и AA55555, не рассматриваются.
  • Используйте зарезервированную строку шаблона {TIVOLILOGTIME} для подстановки шестнадцатиричной временной метки и порядкового номера файла в именах файлов журналов агента или сервера Tivoli Monitoring. Эту строку шаблона удобно использовать при выполнении самоконтроля компонентов Tivoli Monitoring. Например, если вы хотите отслеживать последний журнал мониторинга в каталоге /opt/IBM/ITM/logs, то задайте следующий шаблон имен файлов:
    /opt/IBM/ITM/logs/Host1_ms_{TIVOLILOGTIME}.log
    Если в каталоге /logs есть файлы Host1_ms_452053c0-01.log, Host1_ms_451f11f4-01.log, Host1_ms_45205946-01.log и Host1_ms_451f11f4-02.log, то для мониторинга будет выбран файл Host1_ms_45205946-01.log.

Чтобы точно указать имя файла, содержащее компоненты даты (год, месяц и число), используйте заглавные буквы Y, M и D. Эти буквы следует указывать в фигурных скобках; в противном случае они будут обрабатываться как буквы в имени файла.

Рассмотрим следующие примеры:

{YYYYMMDD}.log
Задает имена файлов вида 20060930.log или 20061015.log.
{MMDDYY}.log
Задает имена файлов вида 101106.log или 110106.log.
{DDMMYYYY}.log
Задает имена файлов вида 01092006.log или 15082006.log.
{DDMMMYY}.log
Задает имена файлов вида 24Jan07 или 13Sep06.
{MM-DD-YY}.log
Задает имена файлов вида 11-02-06 или 04-29-07. Символ-разделитель (-) в поле даты игнорируется, и, чтобы его пропустить, вставлять вместо него вопросительный знак не нужно.
MY{YYDDD}.log
Задает имена файлов вида MY06202.log, MY06010.log или MY04350.log.

В сложных случаях поле данных включено в состав длинного имени файла, и шаблонов даты, показанных в примерах, недостаточно. В сложных случаях можно создать шаблоны, в которых будут сочетаться символы решетки и вопросительные знаки, и сопоставить числа для выбора последнего файла для мониторинга. Например, шаблон ABC{?####?##?##?##?##?##?}XYZ.TXT можно использовать для имен файлов вида ABC 2006-04-20 11_22_33 XYZ.TXT. В этом примере вас интересуют только цифры, обозначенные #-, а символы ? используются как заменители, чтобы указать, что остальные символы в имени файла должны игнорироваться.

Провайдер данных файлов регулярно проверяет, не появились ли в каталоге назначения новые файлы, соответствующие заданному шаблону. Если будет обнаружен новый файл, соответствующий шаблону, то провайдер данных файла автоматически переключает мониторинг программы на новый файл. Провайдер данных файла ищет наилучшее совпадение в следующих случаях:
  • Провайдер данных файлов запускается впервые.
  • Отслеживаемый в настоящий момент файл больше не существует (переименован или удален).
  • Контент существующего файла изменился (возможно, файл перезаписан).
  • Закончился интервал проверки. Интервал по умолчанию - 10 минут. Интервал можно изменить, задав переменную среды
    KUMP_DP_FILE_SWITCH_CHECK_INTERVAL=число_секунд