Inotify, ubuntu and trash

I ran into an issue while monitoring an ubuntu machine’s file system activity using python’s implementation of Inotify (pyinotify) and it’s awesome big brother, the “watchdog” python library. If you havent checked out watchdog for monitoring file system events – you’re seriously missing out. Catch up on it here:

http://pythonhosted.org/watchdog/

https://github.com/gorakhargosh/watchdog

The watchdog library worked extremely well across all the platforms I tested, including linux ubuntu servers. However I ran into a small issue when testing against an ubuntu client. Watchdog (and pyinotify) was not firing off events when files were being deleted. It turns out ubuntu’s “Trash” system was at fault here. Equivalent to window’s recycle bin, the trash was not actually deleting files when I hit the “delete” button, so there was no event to fire on.

The workaround in my case was to simply remove all permissions on the trash directory by using:

chmod 000 ~/.local/share/Trash

Now when hitting delete, I get asked a confirmation to delete files, and then files are actually removed, firing off the proper delete event in pyinotify and watchdog.

 

Update : I posted a patch/solution for this problem here:

https://groups.google.com/forum/#!topic/watchdog-python/t4s1B5IyY4c

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s