Linux 文件系统加速-';查找';命令

Linux 文件系统加速-';查找';命令,linux,find,metadata,fuse,dir,Linux,Find,Metadata,Fuse,Dir,我希望加快查询速度,例如: find root\u dir-atime-5-查找五天前访问过的文件 我考虑在数据库中存储文件系统层次结构和文件元数据。 你知道有什么解决办法可以帮助你吗? 也许有一个fuse文件系统可以做到这一点 有updatedb和locate(同一个包),但它需要手动运行以进行更新,并且似乎无法按文件戳进行搜索。如果您要编写自己的解决方案,它可能仍然是一个很好的起点。这样的find命令将导致遍历的目录数据和inode位于文件系统缓存中,这就是为什么在第二次运行同一命令时,该命

我希望加快查询速度,例如:
find root\u dir-atime-5
-查找五天前访问过的文件

我考虑在数据库中存储文件系统层次结构和文件元数据。 你知道有什么解决办法可以帮助你吗?
也许有一个fuse文件系统可以做到这一点

updatedb
locate
(同一个包),但它需要手动运行以进行更新,并且似乎无法按文件戳进行搜索。如果您要编写自己的解决方案,它可能仍然是一个很好的起点。

这样的find命令将导致遍历的目录数据和inode位于文件系统缓存中,这就是为什么在第二次运行同一命令时,该命令通常要快得多的原因。其他遍历文件系统的命令也是如此,如
du

请注意,数据库的构建也至少需要
find
所需的时间。更不用说同步运行是为了反映数据库中的文件系统更改。完成数据库重建可能是实现这一点的最快方法

因此,我要做的是通过文件系统中您感兴趣的部分运行
查找
(可能是周期性的cron作业)。这样,从某种意义上说,你建立了一个内存中的“数据库”,随后的
find
du
以及类似的东西会运行得更快。

没有“真正好”的解决方案可以做到这一点。您可以每小时或每天运行一次cron脚本,以创建像您这样的数据库,但如果您运行得太频繁,会给文件系统带来很大的负载;如果你不经常运行它,你的结果就会过时

另一种方法是使用内核机制通知程序文件系统的更改。请查看以开始。但是,这是特定于linux的,它只允许监视特定目录,而不允许监视整个文件系统