gpt4 book ai didi

linux - 面对不同步的时钟,inotify 是否有效?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:25 28 4
gpt4 key购买 nike

场景如下:

  • 运行 Linux 的中央机器是许多仪器的“数据存储”。

  • 每台仪器都有一台 PC,每台仪器在数据存储上都有一个远程安装 (SMB),它将仪器捕获的数据文件写入其中。

  • 仪器 PC 运行各种操作系统,包括一些非常古老的操作系统。

  • 仪器 PC 的硬件时钟不同步,由于多种原因同步会出现问题。

  • 各种其他修复(例如,不使用 SMB、升级仪器操作系统、开发在仪器上运行的东西)同样存在问题。

我们想要编写的是一个“抓取器”应用程序,当仪器通过其远程安装将文件写入数据存储时,它会发出通知,然后迅速将文件复制到其他地方。目前的计划是使用 Linux inotify 子系统来监视文件可能到达的目录/树上的文件系统事件,然后进行复制。

我担心的是,我们没有同步时钟这一事实将成为一个问题。这种担忧是否合理?

最佳答案

这种担心是没有道理的。

Linux inotify 是一个用户空间 API,它公开了 Linux fsnotify 子系统。这个内核文件系统连接到内核的通用文件系统层(称为 VFS)。它通过回调函数直接从文件系统代码获取创建新文件的通知,而不是通过比较目录中文件的创建或访问日期。因此,它根本不会受到文件时间戳的影响,因此不同客户端计算机上的时钟根本无关紧要。

确保您审核了 inotify_should_send_event() 发送事件函数的代码,该函数检查是否需要为跟踪的文件或目录发送事件(参见此处:http://lxr.linux.no/linux+v3.0.4/fs/notify/inotify/inotify_fsnotify.c#L144)。请注意,没有任何时间引用。本着同样的精神,内核中的主要 fsnotify 函数 (http://lxr.linux.no/linux+v3.0.4/fs/notify/fsnotify.c#L296) 不会在任何地方引用时间戳,因此时钟不会影响完全没有这个界面。

希望对您有所帮助。

关于linux - 面对不同步的时钟,inotify 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com