У меня проблема с вращением файлов. Ситуация следующая:
Есть ли решение, как повернуть эти файлы?
Что-то вроде псевдо файла FILO:
mkfilo /tmp/stream.buffer
./scrtip/program.bin -o /tmp/stream.buffer
get_out_filo(stream.buffer) > netstream.bin
Мой вопрос также звучит как "Как изменить файловый дескриптор программы, чтобы записать другой файл"
FIFO может не подойти вам. Там должен будь читателем с другой стороны, иначе писатель заблокирует. Кроме того, как только читатель перестанет читать fifo, писатель выйдет из строя с поломанной трубкой.
logrotate
в основном может помочь вам, но за счет возможной потери некоторых данных.
Проблема потери данных возникает между этапами 2 и 3. Возможно, что в файл будет записано больше данных после того, как копия файла скопировала то, что, по ее мнению, было концом файла. Когда происходит шаг 3, вы обрезаете (и теряете) данные, которые вы пропустили во время копирования.
В зависимости от того, насколько вам это нужно, альтернативой может быть написание программы, которая всегда читает из файла fifo, но при этом записывает данные в разные места в зависимости от некоторых условий (например, получает сигнал). Это был бы чистый способ сделать это, но сначала вам нужно написать эту программу!