识别过去一小时内更改的文件

识别过去一小时内更改的文件

现在我使用 python 来找出过去一小时内修改过的文件。这在我的网络上真的很慢(约 50000 个文件 - 并检查每个文件的时间戳)。我有一个自定义脚本,我将这个列表传递给它 - 它在远程服务器上执行一些传输/登录/等操作。

我想加快文件列表生成时间(仅找出文件列表就需要大约 15-20 分钟)。有什么建议吗?

有一件事可能会有所帮助,那就是网络有一个 netapp 文件程序。该文件程序会创建这些 .snapshot 目录。我能以某种方式(通过 API?)连接到该文件程序并找出最近更改的列表吗?

如果您不熟悉 NetApp API,那么有关如何使用 unix 命令生成文件列表(快速!)的建议会很棒!(顺便说一句,这是一个网络文件系统 - 因此将有多台机器进行更改)。

答案1

只需使用find

find /path/to/dir/ -mmin -61

相关选项:

   -mmin n
          File's data was last modified n minutes ago.
   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

所以,-mmin -61意思是“查找少于 61 分钟前修改的文件”,换句话说,就是过去一小时内修改过的文件。

您可能也想使用这些选项,它们会加快搜索速度,但我不知道它们是否合适,这取决于您的设置:

  • -maxdepth 1:不要进入子目录。
  • -type f:仅查找常规文件,不查找目录等。

我刚刚在我的笔记本电脑(i7,2.6GHz)上在一个包含 78353 个随机生成的文件(这意味着修改日期也是随机的)的目录中运行了这个命令。它花了不到一秒返回过去一小时内修改的 51 个文件的列表。

相关内容