У меня есть ряд приложений в системах Linux, которые мне нужно постоянно «вытекать» или даже «вытаскивать», но проблема в том, что имена файлов постоянно меняются и меняются.
Все они закодированы (даты в разных форматах), и каждый из них имеет разные приращенные форматы.
Большинство из них начинаются с одного и увеличиваются, но у одного нет расширения изатем добавляет расширение после первого файла, а другой увеличивает число, но один раз нажимая 99, поворачивается, чтобы увеличить альфа, и возвращает цифру к 01, а затем снова увеличивается, когда он катится так быстро.
У меня просто ОСсценарии на уровне оболочки, утилиты командной строки ОС и perl, доступные мне для обработки этой ситуации, чтобы другое приложение могло взять и прочитать эти журналы.
Новые файлы всегда создаются в тот момент, когда начинается запись в новый файл, а группы разных журналов (некоторые читают, некоторые нет) записываются в один и тот же каталог, поэтому я не могу просто забрать что-либо, ударивкаталог.
Если я просто 'tail -n 1000000 -f |'сегодня они работают нормально для приложения чтения, которое я использую, пока файл не изменится, и я не могу настроить диапазоны списков файлов в приложении чтения, но могу предварительно обработать их, чтобы они в основном отображались как непрерывный поток для читателя по сравнению с читателем напрямуювызывая команды, чтобы прочитать их. простой читатель журнала Perl, подобный этому , также отлично работает для статических имен файлов, но не для динамических.Очень важно, чтобы я не перерабатывал какие-либо строки журналов, а просто записывал новые строки, записываемые в журналы.
Я признаю, что я не являюсь какой-либо формой Perl-гуру, и у меня есть лучшие ответы / подсказкиДо сих пор удалось обнаружить, что функция Glob в Perl, возможно, делает это, но примеры, которые я обнаружил, в основном перерабатывают все файлы при каждом запуске, а затем, кажется, останавливаются.
Примеры имен файлов, с которыми я имею дело в нескольких приложениях, которые я пытаюсь обработать ..
- appA _YYMMDD.log
- appA _YYMMDD_0001.log
- appA _YYMMDD_0002.log
- WS01 APPB _YYMMDD.log
- WS02 APPB _YYMMDD.log
- WS03 AppB _YYMMDD.log
- APPC MMDD_A01.log
- APPC MMDD_B01.log
- ГГГГММДД_001_ APPD .log
Как указано выше, файлы не имеют одинаковый индекс и просто отслеживают каталог на предмет измененийневозможно, так как там много чего написано.В системе dev более 50 журналов записываются в каталог и тысячи файлов, и я только пытаюсь получить 5. Я смотрю, можно ли сделать доступным несколько сетей, чтобы попробовать это предложение, но в настоящее время он недоступен и не устанавливает какие-либодополнительные RPM в среде - это, как правило, многомесячная битва.
ls -i 24792 APPA_180901.log 24805 APPA__180902.log 17011 APPA__180903.log 17072 APPA__180904.log 24644 APPA__180905.log 17081 APPA__180906.log 17115 APPA__62 * 1062)на самом деле корень того, что я пытаюсь сделать, - это просто непрерывный поток, независимо от того, изменяется ли имя файла, и ему не нужно многократно выполнять команду извлечения или иметь большие разрывы в потоке данных, в то время как некоторые сценарии выясняют, что файл, в который выполняется вход, имеетизменилось.Мне не нужно анализировать содержимое (это делает мое другое приложение). Существует ли простой способ обработки этого изменяемого имени файла?