#docker #inotify #tcp-server #kqueue #fsevents #boot2docker

app fs_eventbridge

将文件更改事件流式传输到远程目标或虚拟机的TCP服务器

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2016年10月7日

#11 in #kqueue

ISC 许可证

10KB
171

#FS-EventBridge 构建状态 将文件更改事件流式传输到远程目标,例如通过NFS共享文件的docker VM。

构建

用于本地操作系统

cargo build --release

用于boot2docker VM

docker run --rm -it -v `pwd`:`pwd` -w `pwd` scorpil/rust cargo build --release

在这两种情况下,在 target/release/fs_eventbridge 中找到构建的二进制文件。

执行

将二进制文件复制到远程位置,并运行

./fs_eventbridge

FS-EventBridge 将启动并监听所有接口上的65056端口。可以通过指定命令行参数来更改端口和绑定的IP地址。使用 --help 启动以获取详细信息。

使用

使用您喜欢的语言/库/客户端连接到TCP服务器。或者使用 telnet(如果不在本地,请将localhost替换为运行FS-EventBridge的机器的IP地址)

telnet localhost 65056

所有命令都以CR、LF或它们的任意组合结束。它们可以以任何方式流式传输;FS-EventBridge将按照接收到的顺序处理命令,一旦达到换行符就会处理。

命令

帮助

打印所有命令的帮助页面

更改 /路径//文件 mtime_seconds

将远程文件标记为已更改(触发操作系统特定的文件系统事件更改通知)。默认情况下,文件将设置atime和mtime为当前系统时间。可选地,指定mtime可以将这些时间设置为任意时间戳。它应以纪元秒提供。

为什么?

使用MacOS和Docker的工程师们长期以来一直在与FSEvents文件更改通知无法传播到Docker虚拟机的inotify之间作斗争,尤其是通过NFS挂载共享的。通过SSH触发touch命令的修补程序既慢又不可靠。FS-EventBridge被创建出来,在根Boot2Docker虚拟机上运行,允许其他工具(即将推出官方客户端)实时监听主机操作系统的更改并通过事件桥在单次低开销连接中转发。

许可证

FS-EventBridge遵循ISC许可证分发。有关详细信息,请参阅LICENSE.txt。

致谢

FS-EventBridge由Tom Shawver在2016年创建于TechnologyAdvice。

依赖项

约5.5MB
约97K SLoC