如何有效地扫描远程文件系统?

时间:2009-09-21 07:56:31

标签: file system

我确实有时间限制,想知道远程扫描文件系统的有效方法是什么(在极端情况下谈论5000万个文件)? 命令dir需要很长时间(大约20小时!!!)。

3 个答案:

答案 0 :(得分:1)

在本地或远程服务器上构建查找表,定期更新,然后搜索。这就是locate命令在Unix上的工作方式。如果您将查找表实现为散列,则更多,更快(O(1)),而不是每次需要搜索文件时遍历文件系统。您支付的价格是它只是与您上次索引文件系统时的最新版本。

答案 1 :(得分:1)

如果您正在阅读5000万个文件的内容,那么根据定义,您将被限制在以下三个方面中最低的一个:

  1. 远程I / O(磁盘)
  2. 网络带宽;
  3. 本地处理时间(CPU)
  4. 如果您一次只做一个文件,可以通过并行化算法加快速度。假设它是最佳并行化的,那么您将受到以上其中一种的限制。

    (1)只能通过扫描/读取较少的文件来解决。 (2)只能通过在远程主机上运行或减少需要扫描的文件来解决。 (3)只能通过增加CPU,分配工作和/或在远程系统上运行来解决。

    减少工作量可以通过更改算法,更改要求,在适当时缓存结果或其某种组合的结果来完成。

答案 2 :(得分:1)

登录服务器,转储文件列表如:

 linux: $ ls > list.txt
 windows: dir /b > list.txt

使用您喜欢的压缩器压缩(远程)list.txt并将其下载到本地系统。

您可以创建一个脚本来自动完成任务。