【发布时间】:2012-06-14 17:50:04
【问题描述】:
在我的机器上,我有一个应用程序每秒重新生成的文件 - 它每次都包含不同的数据,因为它基于一些实时数据。
我想要一份此文件的副本,其中包含原始文件 5 分钟前包含的内容。这在某种程度上很容易实现吗?我很乐意使用一些 BASH 脚本魔法来做到这一点,但是向原始应用程序(用 c++ 编写)添加一些明智的、内存效率高的代码也会让我满意 :)
【问题讨论】:
-
你能简单地将数据存储在一个变量中吗?或者可能是一个临时文件?
-
while true; do cp file 5ago-file; sleep 300; done你在找什么? -
Dave:如果他需要始终能够看到文件 5 分钟前的样子,他需要每秒复制文件并保留过去的 5分钟的副本(即 300 个文件副本)。
-
@Dave:不完全是,我需要每秒更新该副本文件,但数据已过时。
-
滞后文件并非不可能,但有一些技巧可能会简单得多。如果您只是将数据附加到末尾,为什么不只使用一个文件,为所有条目添加时间戳,并在 5 分钟前读取条目?或者,如果它不是按顺序附加的,则保留一个从记录到时间戳的映射(用 C++ 术语)。这样的事情听起来合理吗?