1

我需要对写入特定文件夹的每个文件运行 python 脚本。所以我在 /etc/incron.d/ 中创建了一个文件并添加了以下行:

/srv/ftp IN_CREATE /usr/bin/python3 /srv/parser.py $@/$# >> /var/log/parser/incron.log 2>&1

系统日志向我显示:

incrond[32630]: (system::parser) CMD (/usr/bin/python3 /srv/parser.py /srv/ftp/00008260_2015-12-09T17-31-36.csv >> /var/log/parser/incron.log 2>&1)

但是日志是空的,脚本没有做任何事情

4

1 回答 1

0

我发现了问题:即使文件没有完全写入,IN_CREATE 也会触发,因此,它在复制速度非常快时起作用,例如将 10kb 文件从一个文件夹复制到另一个文件夹,但绝对不是通过 FTP,正确的事件是IN_CLOSE_WRITE,它会在 ftp 服务器执行 fclose() 后触发,其次 inconrd 不喜欢多个命令

所以以下工作:

/srv/ftp IN_CLOSE_WRITE /srv/parser.py $@/$#
于 2015-12-15T15:40:06.667 回答