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