Назад | Перейти на главную страницу

Программа, которая принимает стандартный ввод, а затем записывает в файл с отметкой даты и времени?

Интересно, есть ли программа, которая сделает то, что я хочу? Это похоже на программу ротации потокового журнала. Для командной строки linux / unix.

Скажем, у меня есть ввод, который передает некоторые данные. Я хочу записать в него файл, но другой файл в день (или час, или что-то еще), то есть открыть файл с указанным шаблоном на основе даты и времени и записать содержимое stdin в этот файл. когда день меняется (или час, или минута, или неделя и т. д.), закройте этот файл, затем снова откройте новый (с новым именем файла) и вместо этого напишите строки в этот файл?

Так что-то вроде:

my long | process | that's generating | input | datestampfilewriter --daily 'output.%Y-%m-%d.txt'

Этот инструмент существует?

Вы могли бы использовать хронолог.

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

Как насчет logger? Журналы в системном журнале, который имеет отметку даты и может быть logrotated.

И с -f опция записывает в файл. Видеть man logger.