2015-02-26 11 views
0

Инициализировать исходные и целевые каталоги.События в очереди с inotifywait

srcdir=/user/user1/src 
tagtdir=/user/user1/dest 

Я хотел бы, чтобы получить уведомление, когда файл копируется в SRCDIR и -m для непрерывного мониторинга.

inotifywait -m -r -e close "$srcdir" | 

while read filename eventlist eventfile 

Вызовите мой скрипт на питоне.

do 
    mv "$srcdir/$eventfile" "$tgtdir/$eventfile" && ./myscript.py "$eventfile" 
done 

К сожалению, мой сценарий, который совсем немного времени, и если есть другие файлы, которые копируются в то время как myscript.py выполняется, я пропускаю эти события. Возможно ли приостановить события и обработать их позже?

Другой вариант: я запустил myscript.py в фоновом режиме, и это может решить эту проблему.

ответ

0

Вместо этого вы можете использовать Watchman; он работает как постоянный сервис и запоминает события, которые вы пропустили.

Существует несколько способов, которыми вы могли бы воспользоваться своим прецедентом, но, вероятно, самым простым является создание триггера, а сторож непосредственно запускает ваш скрипт по мере изменения файлов или использует привязки клиента pywatchman, чтобы иметь Постоянный скрипт python запускается и подписаться на события и выполнять любые действия, которые вы хотите.