incrond не выполняет скрипт Python

Мне нужно запустить скрипт 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)

но журнал пуст, а скрипт ничего не делал

1 ответ

Решение

Я обнаружил проблему: IN_CREATE срабатывает, даже если файл записан не полностью, поэтому он работает, когда копирование выполняется очень быстро, например, если файл размером 10 КБ переходит из одной папки в другую, но определенно не по FTP, правильное событие IN_CLOSE_WRITE, он будет срабатывать после того, как ftp-сервер выполнит fclose(), а во-вторых, inconrd не нравится более одной команды

так работает следующее:

/srv/ftp IN_CLOSE_WRITE /srv/parser.py $@/$#
Другие вопросы по тегам