1

I have a problem where inotify, no matter what I do, doesn't detect changes in one specific folder. It detects changes in other folders that otherwise are no different. What could be causing this?

inotifywait 3.14
Linux titan 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux

inotify works as expected here:

In one terminal:

ben@titan:~$ mkdir -p notifytest/example
ben@titan:~$ cd notifytest
ben@titan:~/notifytest$ inotifywait -rme attrib,modify,move,create,delete . --exclude '(log|[a-z]+.sqlite)'

In another terminal:

ben@titan:~$ cd notifytest
ben@titan:~/notifytest$ touch test.txt
ben@titan:~/notifytest$ touch example/test.txt
ben@titan:~/notifytest$ rm example/test.txt
ben@titan:~/notifytest$ rm test.txt

Output:

Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
./ CREATE test.txt
./ ATTRIB test.txt
./example/ CREATE test.txt
./example/ ATTRIB test.txt
./example/ DELETE test.txt
./ DELETE test.txt

inotify doesn't work as expected here:

I have an existing folder called blog that is ignored :(

I create a new folder called example that is correctly watched

In one terminal:

ben@titan:~$ cd some-path
ben@titan:~/some-path$ ls
drwxr-xr-x 3 ben     ben      4096 Aug 16 14:23 blog
-rw-r--r-- 1 ben     ben     17408 Aug 15 13:58 blog.sqlite
-rw-r--r-- 1 ben     ben       325 Aug 15 13:01 config.py
-rw-r--r-- 1 www-run www-run 91800 Aug 16 14:23 log
drwxr-xr-x 2 ben     ben      4096 Aug 15 14:14 public_html
-rw-r--r-- 1 ben     ben      1999 Aug 15 16:21 schema.sql
-rwxr-xr-x 1 ben     ben      6019 Aug 16 14:01 start.py
ben@titan:~/some-path$ mkdir example
ben@titan:~/some-path$ ls
drwxr-xr-x 3 ben     ben      4096 Aug 16 14:23 blog
-rw-r--r-- 1 ben     ben     17408 Aug 15 13:58 blog.sqlite
-rw-r--r-- 1 ben     ben       325 Aug 15 13:01 config.py
drwxr-xr-x 2 ben     ben      4096 Aug 16 14:28 example
-rw-r--r-- 1 www-run www-run 91800 Aug 16 14:23 log
drwxr-xr-x 2 ben     ben      4096 Aug 15 14:14 public_html
-rw-r--r-- 1 ben     ben      1999 Aug 15 16:21 schema.sql
-rwxr-xr-x 1 ben     ben      6019 Aug 16 14:01 start.py
ben@titan:~/some-path$ file example
example: directory
ben@titan:~/some-path$ file blog
blog: directory
ben@titan:~/some-path$ inotifywait -rme attrib,modify,move,create,delete . --exclude '(log|[a-z]+.sqlite)'

In another terminal:

ben@titan:~$ cd some-path
ben@titan:~/some-path$ touch test.txt
ben@titan:~/some-path$ touch blog/test.txt
ben@titan:~/some-path$ touch example/test.txt
ben@titan:~/some-path$ rm test.txt
ben@titan:~/some-path$ rm blog/test.txt 
ben@titan:~/some-path$ rm example/test.txt 

Output:

inotifywait -rme attrib,modify,move,create,delete . --exclude '(log|[a-z]+.sqlite)'
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
./ CREATE test.txt
./ ATTRIB test.txt
./example/ CREATE test.txt
./example/ ATTRIB test.txt
./ DELETE test.txt
./example/ DELETE test.txt

Expected Output:

inotifywait -rme attrib,modify,move,create,delete . --exclude '(log|[a-z]+.sqlite)'
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
./ CREATE test.txt
./ ATTRIB test.txt
./example/ CREATE test.txt
./example/ ATTRIB test.txt
./blog/ CREATE test.txt
./blog/ ATTRIB test.txt
./ DELETE test.txt
./example/ DELETE test.txt
./blog/ DELETE test.txt
4
  • 1
    is blog on the same fs as example and notifytest? Commented Aug 16, 2016 at 13:40
  • @ipor-sircer Yes, its not a symlink or special in any way. One symlink elsewhere points to it, but I don't think that would normally matter Commented Aug 16, 2016 at 13:42
  • 1
    i think blog matches your --exclude (log) pattern Commented Aug 16, 2016 at 13:46
  • @Ipor-Sircer - you're completely correct! The fix was to change the regex to ^log$. Give it as the answer and I'll accept. Thank you!!! :D Commented Aug 16, 2016 at 14:04

1 Answer 1

3

Your --exclude (log) pattern matches b**log**.

Use ^log$ instead.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .