Ala*_*oni 5 linux samba notifications
我正在尝试监视远程 Windows 共享的更改(服务器可以是实际的 Windows 机器或带有 Samba 服务器的 Linux 机器)。AFAIK SMB 协议支持一种基于事件的通知:
http://msdn.microsoft.com/en-us/library/jj216044.aspx
我可以change_notify
在smb.conf
.
我的问题是:如何从 Linux 机器的客户端观察此类事件?我想设置一些以类似于inotifywait
共享文件内容更改或创建、删除或移动文件时的事件通知的方式。
到 2022 年,我认为使用systemd
路径描述符也可以与 SAMBA 共享一起使用。您必须创建一个path
描述符和一个经典service
描述符,它们在由路径触发时运行某些内容:
# Path descriptor
[Unit]
Description=Watch a file this may work also with directory but is untested
Wants=<your_sevice>.service
[Path]
#
PathModified=/path/to/file
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
以及service
由路径触发的描述符:
[Unit]
Description=Do something when path changes
[Service]
Type=simple
ExecStart=/path/to/program
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
与使用 systemd 路径一样,路径描述符支持其他类型的选项。
旧答案 一个想法是在 Linux 上使用 Inotify 来监视文件系统上的更改。
从 SAMBA 3.0.23 ( http://wiki.samba.org/index.php/Samba_3.0_Features_added/changed ) 开始,该协议现在支持服务器站点 Inotify,以通知兼容客户端文件系统更改。
但是,正如https://lkml.org/lkml/2007/4/7/129所示,实际上CIFS客户端似乎并不正确支持Inotify。
归档时间: |
|
查看次数: |
6411 次 |
最近记录: |