遍历文件系统并收集统计信息

statwalker的Python项目详细描述


浏览文件系统并收集数据。

Summary

statwalker是一个命令行程序,它递归地扫描文件(通常称为“walk”),并收集统计信息,基本上是文件名和元数据(linux系统中的inode信息)。它在一台机器上并行运行,输出是一个逗号分隔的文件(csv),每个文件一行。这些结果可以使用其他工具进行分析(见下文)。

Output

csv文件将如下所示:

INODE,ATIME,MTIME,UID,GID,MODE,SIZE,DISK,PATH

列说明:

  1. INODE: device identifier and inode (Linux)
  2. ATIME: last access time in unix format (seconds since epoc)
  3. MTIME: last modified time in unix fromat
  4. UID: user ID
  5. GID: group ID
  6. MODE: mode, which is file type and permissions
  7. SIZE: real size in bytes, same value reported with command du -b
  8. DISK: disk usage, which is number of blocks times 512
  9. PATH: full path

How it works

收集统计数据就像bash中的这一行一样简单:

$ TODO

有很多工具在做同样的事情,问题是性能。在文件系统中尝试了一些工具,其中包含了很多兆字节的数据和数以百万计的文件之后,问题变得无法解决。我将statwalker运行在一个存储有1亿多个文件的存储器中,在nfs文件夹上的读取率平均为3000个文件/秒,如果磁盘是本地的,则要快得多。

Installation

使用pip:

$ pip install statwalker

Usage

# run it from the command line to see available parameters:
$ statwalker -h

# run it with options
$ statwalker -o output.csv /home

Contribute

克隆github存储库:

$ git clone https://github.com/sganis/statwalker.git

TODO

  • 添加包含分析工具、分辨率、agregation、c++基准测试和mpi版本的文档。
  • 为Windows用户添加注释

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用cucumberjvm执行java异步步骤   java通过Jackson2导出/导入JSON文件。9.7   java Tomcat在页面加载时给出500错误   将filereader合并到代码中的java问题   从GUI java将对象属性写入文件时发生swing错误   java简单程序,用于检查输入字符串是否为关键字(指定了关键字)   java如何在布局之间滑动时打开音频文件?   hibernate解析Java。lang.ClassCastException   java如何解决记录测试结果的Jenkins构建错误?   Java:在重写文件之前检查文件是否需要更新的最佳方法是什么?   mongodb在Java中重用数据库连接   java Hibernate(n+1)使用非k连接选择   java如何在Spring批处理中创建JSON文件读取器   java将MuPDF导入Android应用程序   字典我对Java中的多态性有疑问