The Apple Geek

Чему ты научился сегодня?

Слежение за изменениями файловой системы

При исследовании работы разнообразных программ из интереса или же во время исследования проблемных ситуаций необходимо следить за файловой активностью. Ранее я описал использование 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, которая в графическом виде показывает файловую активность. Программа бесплатная, но предлагает сделать добровольное пожертвование разработчикам. Функциональность видна по двум скриншотам:


Mac

« Удаление фантомного письма в Mail/Exchange Как заставить работать симлинки в Dropbox »

Comments