Используйте tee (или эквивалент), но ограничьте максимальный размер файла или поверните его в новый файл

Я хотел бы захватить вывод из процесса UNIX, но ограничить максимальный размер файла и / или повернуть его в новый файл.

Я видел logrotate , но не работает в режиме реального времени. Насколько я понимаю, это «очистка», которая выполняется параллельно.

Какое решение является правильным? Думаю, я напишу для этого крошечный скрипт, но я надеялся, что есть простой способ с существующими текстовыми инструментами.

Представьте:

my_program | tee --max-bytes 100000 log/my_program_log

Дало бы ... Всегда записывать последний файл журнала как: log / my_program_log

Затем, по мере заполнения ... переименован в log / my_program_log000001 и начнется новый журнал / my_program_log.

20
задан kevinarpe 25 July 2011 в 00:33
поделиться