Dan Бернштейна Multilog , по- видимому це зробити - чи , можливо , більшість з них, забезпечуючи при цьому вихід через дескриптори файлів для процесора! Щоб компенсувати різницю , як вам подобається - хоча розмір специфікації 20M / 1G може зайняти деякий finagling , як це здається 16М є його зовнішній ліміт на журнал. Далі, здебільшого, є вибір копії та вставлення із вищезазначеного посилання, хоча посилання також детально описує інші параметри, такі як часова мітка на рядок, зберігаючи [an] інший файл (и), що містить лише останню модель узгодження рядків та ін. .
Інтерфейс
multilog script
... сценарій складається з будь-якої кількості аргументів. Кожен аргумент вказує одну дію. Дії виконуються в порядку для кожного рядка введення.
Вибір ліній
Кожний рядок вибирається спочатку. Дія...
-pattern
... знімає вибір лінії, якщо шаблон відповідає лінії. Дія...
+pattern
вибирає лінію, якщо шаблон відповідає лінії.
... візерунок - це рядок зірок та незір. Він відповідає будь-якому об'єднанню рядків, зіставленим всіма зірками та незірками в одному порядку. Незірка відповідає собі. Зірка перед кінцем шаблону відповідає будь-якій рядку, яка не включає наступний символ у шаблоні. Зірка в кінці шаблону відповідає будь-якій струні.
Автоматично обертові журнали
Якщо dir починається з крапки або косою рискою, тоді дія ...
dir
... додає кожен обраний рядок до журналу з назвою dir . Якщо dir не існує, multilog
створює його.
Формат журналу такий:
dir - це каталог, який містить деяку кількість старих файлів журналу, файл журналу з назвою поточний та інші файли для multilog
відстеження його дій.
Кожен старий файл журналу має ім'я, що починається з @ , продовжуючи точною міткою часу, що показує, коли файл закінчено, і закінчуючи одним із наступних кодів:
- .s : Цей файл повністю оброблений і безпечно записаний на диск.
- .u : Цей файл створювався в момент відключення. Можливо, він був усічений. Він не оброблявся.
Дія...
ssize
... встановлює максимальний розмір файлу для наступних дій dir . multilog
вирішить, що струм досить великий, якщо поточний має розмір байтів. ( multilog
також вирішить, що поточний досить великий, якщо він бачить новий рядок у межах 2000 байт максимального розміру файлу; він намагається закінчити файли журналів на межі рядків.) Розмір повинен бути між 4096 та 16777215. Максимальний розмір файлу за замовчуванням - 99999.
У версії 0.75 і вище: Якщо multilog
отримує ALRM сигнал, він відразу вирішує , що струм є досить великим, якщо струм не порожньо.
(Примітка. Я підозрюю, що zsh
schedule
вбудований файл може бути легко переконаний надсилати через ALRM
визначені інтервали, якщо це необхідно.)
Дія...
nnum
... встановлює кількість файлів журналів для наступних дій dir . Після перейменування струму , якщо multilog
бачить Num або більш старі файли журналів, він видаляє старий файл журналу з найменшим міткою часу. число повинно бути не менше 2. За замовчуванням кількість файлів журналу - 10.
Дія...
!processor
... встановлює процесор для наступних дій dir . multilog
подаватиме струм через процесор і зберігатиме висновок як старий файл журналу замість поточного . multilog
також збереже будь-який вихід, який процесор записує в дескриптор 5, і зробить цей вихід читабельним на дескрипторі 4, коли він запускає процесор у наступному файлі журналу. Для надійності процесор повинен вийти з нуля, якщо у нього виникли проблеми зі створенням його виводу; multilog
потім запустить його знову. Зауважте, що запущений процесор може блокувати введення будь-якої програми multilog
.