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
  • 1
    is blog on the same fs as example and notifytest? – Ipor Sircer Aug 16 '16 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 – Ben Sarah Golightly Aug 16 '16 at 13:42
  • 1
    i think blog matches your --exclude (log) pattern – Ipor Sircer Aug 16 '16 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 – Ben Sarah Golightly Aug 16 '16 at 14:04
3

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

Use ^log$ instead.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.