Dan Бернштейна Multilog , по- видимому это сделать - или , возможно , большинство из них, обеспечивая при этом выход через дескрипторы файлов для процессора! Чтобы компенсировать разницу , как вам нравится - хотя размер спецификации 20M / 1G может занять некоторое finagling , как это кажется 16М является его внешний лимит на бревно. Далее следует, в большинстве случаев, выбор «копировать + вставить» по приведенной выше ссылке, хотя в ссылке также указаны другие параметры, такие как отметка времени на строку, поддержание [других] файлов, содержащих только самые последние шаблоны соответствия строк, и многое другое. ,
Интерфейс
multilog script
... скрипт состоит из любого количества аргументов. Каждый аргумент определяет одно действие. Действия выполняются по порядку для каждой строки ввода.
Выбор линий
Каждая строка изначально выбрана. Действие...
-pattern
... отменяет выбор линии, если шаблон соответствует линии. Действие...
+pattern
выбирает линию, если шаблон соответствует линии.
... шаблон представляет собой цепочку звезд и не звезд. Он соответствует любой последовательности строк, совпадающей со всеми звездами и не звездами в одном и том же порядке. Не звезда соответствует самому себе. Звезда перед концом шаблона соответствует любой строке, которая не включает следующий символ в шаблоне. Звезда в конце шаблона соответствует любой строке.
Автоматически вращаемые журналы
Если dir начинается с точки или косой черты, то действие ...
dir
... добавляет каждую выбранную строку в журнал с именем dir . Если dir не существует, multilog
создает его.
Формат журнала выглядит следующим образом:
dir - это каталог, содержащий некоторое количество старых файлов журнала, файл журнала с именем current и другие файлы для multilog
отслеживания его действий.
Каждый старый файл журнала имеет имя, начинающееся с @ , продолжающееся точной отметкой времени, показывающей, когда файл был завершен, и заканчивающееся одним из следующих кодов:
- .s : Этот файл полностью обработан и безопасно записан на диск.
- .u : Этот файл создавался в момент сбоя. Возможно, было усечено. Это не было обработано.
Действие...
ssize
... устанавливает максимальный размер файла для последующих действий dir . multilog
решит, что ток достаточно велик, если ток имеет размер в байтах. ( multilog
также решит, что current будет достаточно большим, если увидит новую строку в пределах 2000 байт от максимального размера файла; он попытается завершить файлы журнала на границах строк.) Размер должен быть между 4096 и 16777215. Максимальный размер файла по умолчанию - 99999.
В версиях 0.75 и выше: если multilog
получает сигнал ALRM , он немедленно решает, что ток достаточно велик, если ток непустой.
(Примечание: я подозреваю, что zsh
schedule
встроенную функцию можно легко убедить отправить через ALRM
определенные интервалы, если это необходимо.)
Действие...
nnum
... устанавливает количество файлов журнала для последующих действий dir . После переименования текущего , если multilog
видит num или более старых файлов журнала, он удаляет старый файл журнала с наименьшей отметкой времени. num должно быть не менее 2. Число файлов журнала по умолчанию - 10.
Действие...
!processor
... устанавливает процессор для последующих действий dir . multilog
будет передавать ток через процессор и сохранять вывод как старый файл журнала вместо текущего . multilog
также сохранит любой вывод, который процессор записывает в дескриптор 5, и сделает этот вывод читаемым в дескрипторе 4, когда он запустит процессор в следующем файле журнала. Для надежности процессор должен выходить не равным нулю, если у него есть какие-либо проблемы при создании выходных данных; multilog
затем запустим его снова. Обратите внимание, что работающий процессор может заблокировать любую входную информацию для программы multilog
.