Программа, которая принимает стандартный ввод, затем записывает в файл с отметкой даты и времени?
Интересно, есть ли программа, которая будет делать то, что я хочу. Это похоже на программу ротации потокового журнала. Для командной строки linux/unix.
Допустим, у меня есть некоторый ввод, который передает некоторые данные. Я хочу записать это файл, но другой файл в день (или час или что-то еще), то есть открыть файл с указанным шаблоном на основе даты и времени и записать содержимое stdin в этот файл. когда день изменится (или час, или минута, или неделя и т. д.), закройте этот файл, затем снова откройте новый (который будет иметь новое имя файла) и вместо этого запишите строки в этот файл?
Так что-то вроде:
my long | process | that's generating | input | datestampfilewriter --daily 'output.%Y-%m-%d.txt'
Этот инструмент существует?
2 ответа
Вы могли бы использовать cronolog.
cronolog - это простая программа-фильтр, которая считывает записи файла журнала из стандартного ввода и записывает каждую запись в выходной файл, указанный шаблоном имени файла, а также текущие дата и время. Когда расширенное имя файла изменяется, текущий файл закрывается и открывается новый.
Как насчет logger
? Журналы в системный журнал, который "дата" и может быть logrotate
д.
И с -f
опция записывает в файл. Увидеть man logger
,