使用python的看门狗从linux监控afp共享文件夹

2024-01-01

我希望Linux机器(Raspberry pi)通过AFP(Apple文件协议,macbook是主机)监视共享文件夹。

我可以通过mount_afp挂载共享文件夹,并安装看门狗python库来监视共享文件夹。问题是看门狗只能监视 Linux 机器本身的修改。

如果监控文件夹已被主机(Apple macbook)或其他PC修改,Linux机器无法发现更改。没有日志出来。

在我在主机(Apple macbook)中测试相同的看门狗python文件后,我可以获得其他机器的修改的每个日志。

主机可以获取文件或文件夹的每一次修改。但其他机器(访客机)无法监视主机或其他人对文件的修改。

看门狗状态是否正常?或者是账号和权限有问题?

这是看门狗示例。

  import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler


class Watcher:
    DIRECTORY_TO_WATCH = "/path/to/my/directory"

    def __init__(self):
        self.observer = Observer()

    def run(self):
        event_handler = Handler()
        self.observer.schedule(event_handler, self.DIRECTORY_TO_WATCH, recursive=True)
        self.observer.start()
        try:
            while True:
                time.sleep(5)
        except:
            self.observer.stop()
            print "Error"

        self.observer.join()


class Handler(FileSystemEventHandler):

    @staticmethod
    def on_any_event(event):
        if event.is_directory:
            return None

        elif event.event_type == 'created':
            # Take any action here when a file is first created.
            print "Received created event - %s." % event.src_path

        elif event.event_type == 'modified':
            # Taken any action here when a file is modified.
            print "Received modified event - %s." % event.src_path


if __name__ == '__main__':
    w = Watcher()
    w.run()

对于网络挂载,通常的文件系统事件并不总是被发出。在这种情况下,不要使用Observer,尝试使用PollingObserver-- 即,更改为:

   self.observer = Observer()

to

   from watchdog.observers.polling import PollingObserver
   ...
   self.observer = PollingObserver()

还有一个PollingObserverVFS您可以尝试的课程。

文档:https://pythonhosted.org/watchdog/api.html#module-watchdog.observers.polling https://pythonhosted.org/watchdog/api.html#module-watchdog.observers.polling

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python的看门狗从linux监控afp共享文件夹 的相关文章

随机推荐

  • jquery 添加类到这个被点击的元素

    我生成几行 tr 与任务 现在 可以通过单击某个任务将每个任务标记为完成span 我通过 ajax 请求来做到这一点 这是 HTML table tr td 1 td td span class icon complete a to hea
  • foreach 循环和 stdclass 对象

    我在这里看到了类似的问题 但我似乎无法将解决方案应用于我的问题 我有一个名为 results 的变量 它是从 API 获得的 我将更改专有名词以保护我工作的客户 stdClass Object out gt stdClass Object
  • Laravel 混合编译依赖

    我正在尝试使用vuex 模块装饰器 https github com championswimmer vuex module decoratorsLaravel Mix 项目中的库 使用 TypeScript 但我不断收到错误Uncaugh
  • 比较两个 OpenCV 图像/2D Numpy 数组

    我刚开始使用 OpenCV Python 和 Numpy 但已经成为 Java C C 程序员有一段时间了 我正在实现一个 sigma delta 背景检测器 它执行以下操作 设 i1 为第一张图像 设 i2 为第二张图像 for each
  • 将字节数组插入 List 的最简洁方法?

    在某些代码中 我正在创建一个字节列表 并希望在构建它时将一个字节数组插入到该列表中 这样做最干净的方法是什么 请参阅下面的代码 谢谢 public class ListInsert public static byte getData re
  • 安装 MvcScaffolding 包时 NuGet 执行策略错误

    我在项目中使用 Visual Web Developer Express 2010 Windows XP 和 ASP NET MVC4 RC 我安装了 NuGet v2 0 30619 9119 我现在尝试通过 NuGet 包管理器控制台安
  • 在运行脚本的页面上查找 xpath

    我正在尝试使用硒抓取网页 通过检查页面并右键单击建议的 xpath 属于不稳定类型 html body table 2 tbody tr 1 td form table tbody tr 2 所以我尝试了以下解决方案 driver webd
  • 当我们可以创建 String s = "abc" 时,需要什么 String s = new String("abc")

    据我的理解 String s new String abc 将创建两个对象 字符串常量池中的一个 如果 abc 尚未在常量池中 堆内存中的一个 尽管对于实际将创建多少对象以及在何处创建存在多种理解 无论如何 我有以下问题 为什么 Strin
  • 在 NodeJS 中从 Base64 字符串创建图像

    我正在尝试上传从画布中提取并通过 ajax 发布的图像 但在服务器端创建图像文件时遇到问题 我有以下这个答案 https stackoverflow com a 7347358 1358670 https stackoverflow com
  • 在django中使用聚合获取最小值字段名称

    我有一个模型 其中包含如下所示的一些字段 class Choclate models Model name models CharField max length 256 price models IntegerField 所以我想获取具有
  • 将日期时间指定为索引不会给出 DatetimeIndex

    我的 df 有一个名为 天 的字段 我需要从 天 和开始日期创建一个日期时间 可能很麻烦 但它有效 for t in df index df loc t date datetime date startdate datetime timed
  • NLog 不写入调试消息

    在我的代码中我有一些信息消息 例如logger Log dwewe and logger Debug ddddf 问题是即使我在 VS 中调试 调试消息也不会被写入
  • Visual Studio 2017 无法脱机安装,并显示“无法下载安装文件”

    因此 我使用以下命令在我的笔记本电脑上创建了 VS 2017 Community 的离线安装 vs community exe layout D Downloads VS Community 2017 lang en US add Micr
  • 在 Windows 上使用 SQLCipher 编译 SQLite

    我正在关注this http groups google com group sqlcipher browse thread thread 55c6296b56bf4533在 Windows 上使用 SQLCipher 编译 SQLite
  • 如何理解elf中Program Headers中Offset和VirAddr的区别?

    有一个共享库elf文件 我使用readelf l查看程序头 输出为 Elf file type is DYN Shared object file Entry point 0x0 There are 11 program headers s
  • 指定容器类型的迭代器类型的部分特化

    我有一个模板结构 它接受模板参数的迭代器类型 现在我需要将该类专门用于不同容器的迭代器 我尝试过 std vector template
  • 创建上下文失败 0x3005

    我有 Windows 8 适用于 Windows 32 位的 Eclipse IDE for Java Developers JUNO 以及更新和安装的适用于 Windows 的 Android SDK 4 1 2 我已经解压了适用于 Wi
  • 使用 JavaScript 的 AJAX 和客户端-服务器架构

    我必须对网站进行编程 但我不喜欢静态 HTML 性质 我更喜欢客户端 服务器架构 现在我发现 使用 XMLhttp 您基本上可以动态更新页面并向服务器发送 请求信息 操作 所以这基本上涵盖了客户区域 但为了完成客户端 服务器架构 服务器也需
  • 我在将 python .pack() 转换为 .grid() 时遇到问题

    我对下面的代码有问题 我在一位讲师完成的 udemy 课程上看到了这段代码 他使用以下命令在 tkinter 窗口中定义了小分区 pack method 问题是我需要使用 grid 后来 由于这两种方法不能在同一个程序中使用 我需要将 pa
  • 使用python的看门狗从linux监控afp共享文件夹

    我希望Linux机器 Raspberry pi 通过AFP Apple文件协议 macbook是主机 监视共享文件夹 我可以通过mount afp挂载共享文件夹 并安装看门狗python库来监视共享文件夹 问题是看门狗只能监视 Linux