使用fuse和python监视文件系统
loggedfs的Python项目详细描述
概要
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中报告错误。
其他
- 完整的项目文档
- License(apache许可证2.0)
- Contributing(非常欢迎捐款!)
- FAQ
- Authors
- Changes
- Long-term ideas
- Upstream issues(依赖项中的相关错误)