我想知道是否有一个相当于循环数据库的文件系统,对于固定大小,它会老化最旧的文件。使用我拥有的简单 cron 作业很容易实现,但我认为这是许多人遇到的问题,也许还有更好的方法。我希望设置一个固定大小的分区或池,当池已满时,其中较旧的文件会自动删除或老化。一种循环缓冲区,它将使用最旧文件留下的空间用于新文件,同时保持文件完整性。
我的 cron 解决方案将磁盘使用率与阈值进行比较,并递归删除最旧的文件,直到磁盘使用率再次低于阈值。它并不完美,因为不能保证阈值足够低,以至于不会在两次 cron 迭代之间被超越。它也没有最大化存储空间的使用,因为阈值在本质上往往是预测性的(在两次 crond 迭代之间,我可以在一分钟内填充多少)。我希望改进的两个缺点。
我正在寻找一个更优雅的解决方案,类似于循环数据库(http://linux.die.net/man/1/rrdtool)如何透明地处理这个问题,但对于文件系统。
我无法理解或解释为什么以下表达式失败gawk 3.1.x
但在 gawk 中有效4.1.x
:
(最小工作示例)
echo ";#ADCDE#" | awk '/#.{5}#$/'
-> 在 中产生匹配,在gawk 4.1.x
中不产生匹配gawk 3.1.x
echo ";#ADCDE#" | awk '/#.*#$/'
-> 在两者中产生匹配
在如何处理正则表达式方面,gawk 3 和 4 之间有什么变化吗?我不认为重复构造 {n} 对正则表达式来说是新的。如果我使用字符类或 [AZ] 更改点 (.),则会发生相同的行为