0

我正在使用 incrontab 和 incrontab -e 编辑器中的命令查看文件夹:

/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#

被监视的文件夹正在通过网络从另一台机器上释放一个文件——该文件显示正常,并且似乎在复制过程关闭文件后触发了 incrontab 作业,但 mv 命令导致目标文件夹中的文件为 0 字节用正确的名字。

全部以root身份运行。

4

1 回答 1

0

OSX 上的 Samba 中似乎存在一个错误,该错误会在写入网络上的共享文件夹时导致两个事件。这使得 incrontab 在使用 OSX 计算机(更新的 OS 10.7 以上)时非常不可行。因此,当 OSX 将文件写入 Linux samba 共享时,有两个事件,第一个事件在文件实际写入完成之前触发 mv 动作。它是 OSX 的 SAMBA 实现中的一个错误。

最后,我使用 inotify 将事件写入日志文件(其中总是有两个),然后在执行操作之前扫描文件以查找事件的两个实例。

另一种策略是在 cron 例程上使用 LSOF,该例程将忽略任何为写入而打开的文件。

于 2019-04-24T08:53:23.000 回答