使用 incrontab mv 文件生成 0 字节文件
Using incrontab mv file results in 0 byte file
我正在使用 incrontab 和 incrontab -e 编辑器中的命令查看文件夹:
/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#
监视的文件夹正在通过网络从另一台机器上释放文件——文件显示正常并且似乎在复制过程关闭文件后触发了 incrontab 作业,但 mv 命令导致 0 字节目标文件夹中具有正确名称的文件。
全部 运行 作为 root。
OSX 上的 Samba 似乎有一个错误,导致在写入网络上的共享文件夹时出现两个事件。这使得 incrontab 在使用 OSX 计算机(较新的 OS 10.7 up)时非常不可行。
所以当 OSX 将文件写入 Linux samba 共享时,有两个事件,第一个事件在文件实际写入完成之前触发 mv 动作。这是 OSXs SAMBA 实现中的错误。
最后我使用 inotify 将事件写入日志文件(其中总是有两个),然后在执行操作之前扫描文件中的两个事件实例。
另一种策略是在 cron 例程上使用 LSOF,它将忽略任何打开以进行写入的文件。
我正在使用 incrontab 和 incrontab -e 编辑器中的命令查看文件夹:
/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#
监视的文件夹正在通过网络从另一台机器上释放文件——文件显示正常并且似乎在复制过程关闭文件后触发了 incrontab 作业,但 mv 命令导致 0 字节目标文件夹中具有正确名称的文件。
全部 运行 作为 root。
OSX 上的 Samba 似乎有一个错误,导致在写入网络上的共享文件夹时出现两个事件。这使得 incrontab 在使用 OSX 计算机(较新的 OS 10.7 up)时非常不可行。 所以当 OSX 将文件写入 Linux samba 共享时,有两个事件,第一个事件在文件实际写入完成之前触发 mv 动作。这是 OSXs SAMBA 实现中的错误。
最后我使用 inotify 将事件写入日志文件(其中总是有两个),然后在执行操作之前扫描文件中的两个事件实例。
另一种策略是在 cron 例程上使用 LSOF,它将忽略任何打开以进行写入的文件。