LINUX.ORG.RU

incrontab мониторинг директории

 , ,


0

1

настроил так

/home/test/stock_prices IN_ALL_EVENTS,IN_NO_LOOP /root/bin/move.sh

но клиент заливает по такой схеме, сначала подключается создает каталог даты, получается путь - /home/test/stock_prices/2020_05_04, а потом подключается уже второй раз через какое-то время и заливает уже файлы в каталог /home/test/stock_prices/2020_05_04 и скрипт не отрабатывает, когда заливаются файлы

я пробовал

/home/test/stock_prices/`date\ +%Y_%m_%d` IN_ALL_EVENTS,IN_NO_LOOP /root/bin/move.sh 

но так он ищет каталог - date\ +%Y_%m_%d

как-то можно такое настроить через incrontab? или надо смотреть на другие варианты решения?


/tmp/test IN_CREATE,IN_CLOSE,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE,IN_NO_LOOP wall -g 1000 "$@/$# created"
srv> ~$ touch /tmp/test/a
"/tmp/test/a created"
srv> ~$ touch /tmp/test/b
"/tmp/test/b created"
srv> ~$ mkdir /tmp/test/dir
"/tmp/test/dir created"
srv> ~$ touch /tmp/test/dir/a
srv> ~$

насколько я помню, он вообще рекурсивно не работает, т.е. реагирует только на файлы/каталоги непосредственно в «watch dir», но не глубже. во всяком случае, я в свое время пердолился с ним, но так и не понял, как заставить рекурсивно мониторить содержимое.

в качестве колхоза можно на IN_CREATE повесить скрипт, который при создании каталога будет генерить правило на этот самый каталог и добавлять в incrontab. а при удалении/перемещении (IN_DELETE_SELF,IN_MOVE_SELF) - соответственно, удалять его из incrontab, что-то типа

incrontab -l | fgrep -v "/path/to/watched/dir" | incrontab -
вот еще интересный отрывок из man 5 incrontab:
/home IN_CREATE /usr/local/bin/abcd $#
<...>
The third example is used for monitoring the /home directory for  newly
create files or directories (it practically means an event is sent when
a new user is added). This event is processed by a program specified by
что косвенно подтверждает мои догадки насчет рекурсии. рискну предположить, что это сделано во избежание приколов типа / IN_ALL_EVENTS ..., которые могут повесить нафиг всю систему

PerdunJamesBond
()

Возможно, inotifywatch можно приладить для этого, он умеет наблюдать за целым деревом.

xaizek ★★★★★
()
Ответ на: комментарий от Garcia

как вы тогда вышли из этой проблемы, делали колхоз или перешли на другую утилиту?

колхоз. создал скрытый файлик, на который и натравил incron. закинул новое музло - файлик потеребил с помощью touch, incron отработал)) так себе решение, но «для себя» сойдет

PerdunJamesBond
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.