При исследовании работы разнообразных программ из интереса или же во время исследования проблемных ситуаций необходимо следить за файловой активностью. Ранее я описал использование DTrace, сейчас же кратко опишу две полезные утилиты, которые мне посоветовал Кирилл Воронин.
fslogger
В книге “Mac OS X Internals. A System Approach” была описана командно-строковая утилита fslogger, написанная автором, позволяющая отслеживать различные изменения файловой системы, например:
- создание файлов и каталогов;
- удаление файлов и каталогов;
- изменения структуры stat (например, изменение разрешений);
- переименование файлов и каталогов;
- изменение содержимого;
- обмен содержимым между двумя файлами (это функция HFS+);
- изменение информации Finder;
- изменение владельца.
Пример работы утилиты:
ole-mac:~ ctrld$ sudo fslogger Password: fsevents device cloned (fd 4) fslogger ready => received 654 bytes # Event type = FSE_CREATE_FILE pid = 193 (iChatAgent) # Details # type len data FSE_ARG_STRING 66 string = /Users/ctrld/Library/Caches/com.apple.iChat/Pictures/.dat00c1.055 FSE_ARG_DEV 4 dev = 0xe000002 (major 14, minor 2) FSE_ARG_INO 4 ino = 2766443 FSE_ARG_MODE 4 mode = -rw-r--r-- (0x0081a4, vnode type VREG) FSE_ARG_UID 4 uid = 501 (ctrld) FSE_ARG_GID 4 gid = 20 (staff) FSE_ARG_INT64 8 tstamp = 8200465994289 FSE_ARG_DONE (0xb33f) # Event type = FSE_CONTENT_MODIFIED pid = 193 (iChatAgent) # Details # type len data FSE_ARG_STRING 66 string = /Users/ctrld/Library/Caches/com.apple.iChat/Pictures/.dat00c1.055 FSE_ARG_DEV 4 dev = 0xe000002 (major 14, minor 2) FSE_ARG_INO 4 ino = 2766443 FSE_ARG_MODE 4 mode = -rw-r--r-- (0x0081a4, vnode type VREG) FSE_ARG_UID 4 uid = 501 (ctrld) FSE_ARG_GID 4 gid = 20 (staff) FSE_ARG_INT64 8 tstamp = 8200466392596 FSE_ARG_DONE (0xb33f)
fseventer
Компания fernLightning на основании идеи fslogger создала программу fseventer, которая в графическом виде показывает файловую активность. Программа бесплатная, но предлагает сделать добровольное пожертвование разработчикам. Функциональность видна по двум скриншотам: