现在我使用 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 个文件的列表。