使用fuse和python监视文件系统

loggedfs的Python项目详细描述


Build Status: master / releaseBuild Status: development branchProject License: Apache License v2Project Development StatusAvailable on PyPi - the Python Package IndexAvailable on PyPi - the Python Package Index

LoggedFS-python repository

概要

loggedfs python是一个基于fuse的文件系统,它可以记录其中发生的每个操作。 这是一个纯粹的python重新实现的LoggedFS方法是Rémi Flament维护cli兼容性。 该项目深受2013年名为Stavros Korokithakis的博客文章的启发 “Writing a FUSE filesystem in Python”(source code repository)。 文件系统完全符合POSIX,传递了pjdfstest test-suite,这是freebsd的fstest的后代。 它还通过了基于Linux Test Project发布的fsx-flavor的fsx linux压力测试。 它旨在适用于生产系统。

注意事项

  • 项目状态:beta
  • 文件系统目前仅为开发并在linux上测试。 有兴趣确认mac os x和/或添加bsd支持的人吗?

安装

来自Python Package Index(pypi):

pip install loggedfs

来自github:

pip install git+https://github.com/pleiszenburg/loggedfs-python.git@master

支持python 3。{4,5,6,7}。

支持Linux。 对mac os x的支持已经实现,但尚未测试。

简单用法示例

要开始将对/tmp/TEST的访问记录到/root/log.txt,请执行以下操作:

sudo loggedfs -p -s -l /root/log.txt /tmp/TEST

要停止录制,请像往常一样卸载:

sudo fusermount -u /tmp/TEST

配置

如果希望loggedfs python只记录特定文件、特定用户或特定操作的操作,则可以使用xml配置文件。loggedfs python与loggedfs原始格式的配置文件完全兼容。但它也可以处理其他字段(例如command字段)。

下面是一个配置文件示例:

<?xml version="1.0" encoding="UTF-8"?><loggedFSlogEnabled="true"printProcessName="true"><includes><includeextension=".*"uid="*"action=".*"retname=".*"command=".*"/></includes><excludes><excludeextension=".*\.bak$"uid="*"action=".*"retname="SUCCESS"command=".*"/><excludeextension=".*"uid="1000"action=".*"retname="FAILURE"command=".*"/><excludeextension=".*"uid="*"action="getattr"retname=".*"command=".*"/></excludes></loggedFS>

此配置可用于记录所有内容,除非它涉及 *.bak文件,或者如果uid是1000,或者如果操作是getattr

需要帮助吗?

请随意在这个项目的GitHub issue tracker中发布问题。

错误和问题

请在loggedfs python的GitHub issue tracker中报告错误。

其他

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

推荐PyPI第三方库


热门话题
java Sonarqube测试覆盖率过滤器(jacoco)   java演示文稿将被取消,因为自创建以来显示度量已更改   java为什么Omnifaces Websocket<o:socket>不能与Websphere 9一起使用?   我试图读取java中的xml,但在我的系统中出现了一个错误   java异步支持未启用,即使默认情况下应该启用   java getThreadHandler方法无法从HandlerThread实例访问   带成员函数的多线程Java启动线程   java jar非法参数   java以编程方式注册@Component注释类   正则表达式如何在java中查找字符串中的长双精度数   具有多客户端的java ServerSocket   java JNI不适用于AppKit线程   java如何在用户选择目录元哈希值时输出该值?   java在春季上传阿拉伯文文件时,文件名以XML实体而不是阿拉伯文符号结束   java为什么我们需要在eclipse中作为远程服务器进行调试?   面向java的数据库计算PageRank   java在单击时切换到不同的活动