我有一些旋转文件的问题。 下一个情况是:
有没有什么解决scheme,如何旋转这个文件?
像FILO伪文件:
mkfilo /tmp/stream.buffer ./scrtip/program.bin -o /tmp/stream.buffer get_out_filo(stream.buffer) > netstream.bin
我的问题也听起来像“如何更改程序文件描述符写入另一个文件”
一个fifo可能不适合你。 另一方面必须有读者,否则作者会阻止。 另外,一旦读者不再阅读fifo,作者将用一根破损的pipe子退出。
logrotate
可以帮助你,但它的代价是可能会丢失一些数据。
丢失数据的问题发生在第2步和第3步之间。在文件副本复制了它认为是文件结尾的文件之后,可能会有更多的数据写入文件。 当出现第3步时,会截断(并丢失)在复制过程中丢失的数据。
取决于你需要多less,另一种方法是编写一个总是从fifo文件中读取的程序,然后根据某些条件(例如接收信号)将数据写入不同的地方。 这将是一个干净的方式来做到这一点,但你需要先写这个程序!