Сначала убедитесь, что inotify-tools
установлено.
Тогда используйте их так:
logOfChanges="/tmp/changes.log.csv" # Set your file name here.
# Lock and load
inotifywait -mrcq $DIR > "$logOfChanges" &
IN_PID=$$
# Do your stuff here
...
# Kill and analyze
kill $IN_PID
while read entry; do
# Split your CSV, but beware that file names may contain spaces too.
# Just look up how to parse CSV with bash. :)
path=...
event=...
... # Other stuff like time stamps?
# Depending on the event…
case "$event" in
SOME_EVENT) myHandlingCode path ;;
...
*) myDefaultHandlingCode path ;;
done < "$logOfChanges"
В качестве альтернативы было бы лучше использовать --format
вместо -c
на inotifywait
.
Просто man inotifywait
и man inotifywatch
для получения дополнительной информации.
Вы также можете использовать incron
и использовать его для вызова сценария обработки.