2011-10-10 15 views
2

这里的情景:面对同步不佳的时钟,是否需要进行inotify工作?

  • 运行Linux的中央机器是一个“数据存储”的一些仪器。

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

  • 仪器个人电脑运行各种操作系统,包括一些非常旧的操作系统。

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

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

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

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

回答

2

这种担心是没有道理的。

Linux inotify是一个暴露Linux fsnotify子系统的用户空间API。该内核文件系统连接到内核的通用文件系统层(称为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)不会在任何地方引用时间戳,因此时钟不会影响这个界面。

我希望这会有所帮助。

+1

并且警告并不是每个网络文件系统都支持更改通知。首先测试:但我认为它可能适用于CIFS坐骑。 –

+0

@ZanLynx - 经过测试,是的。 –

相关问题