The tool retrieves file system events from a specific directory and shows them in colorful format or in JSON.
It is possible to filter the events happening from a specific program name or process id (PID).
Usage: ./fsmon [-jc] [-a sec] [-b dir] [-B name] [-p pid] [-P proc] [path] -a [sec] stop monitoring after N seconds (alarm) -b [dir] backup files to DIR folder (EXPERIMENTAL) -B [name] specify an alternative backend -c follow children of -p PID -f show only filename (no path) -h show this help -j output in JSON format -L list all filemonitor backends -p [pid] only show events from this pid -P [proc] events only from process name -v show version [path] only get events from this path
fsmon filesystem information is taken from different backends depending on the operating system and apis available.
This is the list of backends that can be listed with
- inotify (linux / android)
- fanotify (linux > 2.6.36 / android 5)
- devfsev (osx /dev/fsevents – requires root)
- kqueue (xnu – requires root)
- kdebug (bsd?, xnu – requires root)
- fsevapi (osx filesystem monitor api)
OSX + iOS fatbin
$ make ios
$ make android NDK_ARCH=<ARCH> ANDROID_API=<API>
To get fsmon installed system wide just type:
$ make install
Changing installation path…
$ make install PREFIX=/usr DESTDIR=/