ryg

Команда fs_usage в Mac OS X

Утилита fs_usage - создает отчет о системных вызовах и ошибках страниц связанных с файловой системой в реальном времени.

Синтаксис:

fs_usage [-e] [-w] [-f mode [-f mode] ...] [pid|cmd [pid|cmd] ...]

Описание:

Выдает информацию о системных вызовах связанных с активностью файловой системы.Так как для выполнения трассировки утилита обращается непосредственно к ядру системы необходимо иметь права супер-пользователя (root).

По умолчанию монитор активности контролирует все системные процессы, за исключением:

процессов запущенных самой fs_usage;

  • Terminal;
  • telnetd;
  • sshd;
  • rlogind;
  • tcsh;
  • csh;
  • sh;

Список контролируемых процессов можно переопределить включив, либо исключив процессы необходимые вам для контроля.

Вывод данных на экран утилитой fs_usage форматируется в зависимости от ширины открытого вами окна терминала. В случае если окно недостаточно широкое будет выведено меньшее количество столбцов с данными, поэтому перед запуском откройте окно на максимальную ширину, также возможно принудительное определение вывода с максимальным количеством колонок с помощью параметра -w. При использовании данного параметра непомещающиеся данные будут переноситься на следующую строку.

Параметры:

-e Исключает из вывода процессы запущенные самой fs_usage. Если дополнительно указан список ID процессов и/или команд, то они также будут исключены из вывода результата
-f mode

Включает фильтрацию на основании заданного режима (mode). По умолчанию фильтр отключен. Mode может принимать следующие значения:

network - выводить события связанные только с сетью
filesys  - отображать события связанные только с файловой системой
exec    - Отображать события связанные только с порождением процессов exec и spawn.
pathname - показывать события связанные с указанным путем
cachehit - Дополнительно отображать CACHE_HIT

-w Вывести данные на экран независимо от ширины открытого окна, в случае если данные таблицы не помещаются по ширине перенести на следующую строку.
-R raw_file  Задает файл для записи трассировки данных
-S start_time Если определен raw-файл (параметр -R), то задает время начала записи протокола в файл. Задается в микросекундах от момента запуска программы. События с момента запуска до момента до начала записи игнорируются.
-E end_time Если определен raw-файл (параметр -R), то задает время окончания записи протокола в файл. Задается в микросекундах от момента запуска программы. События после заданного времени  игнорируются.
pid | cmd Выводимые данные могут быть ограничены заданным списком команд или ID-процессов. Когда задается имя команды или программы будут выводиться события связанные со всеми процессами данной программы. Данный параметр прямо противоположен параметру -E для команды fs_usage, который исключает из вывода заданные процессы.

В результатах будут показаны следующие колонки:

TIMESTAMP Время вызова (TOD - time of day). В режиме -w будет детализировано в микросекундах. 
CALL   Сетевое имя или связанный с файловой системой вызов, page-in, page-out или прямой доступ к диску
FILE DESCRIPTOR

Отображается в виде F=x, где x -дескриптор файла. В зависимости от типа системного вызова может быть как входным значением, так возвращаемым.

BYTE COUNT  Отображается в виде B=y, где y количество байт запрашиваемых вызовом
[ERRNO] В случае ошибки она отображается в квадратных скобках "[]"
PATHNAME Путь к файлу (последние 28 байт)
FAULT ADDRESS Адрес ошибки по форме A=0xnnnnnnnn, где 0xnnnnnnnn адрес произошедшей ошибки
DISK BLOC NUMBER Физический блок диска где был ввод-вывод. Формат D=0xnnnnnnnn, где 0xnnnnnnnn номер блока
OFFSET Смещение внутри файла. Выводится в виде O=0xnnnnnnnn, где 0xnnnnnnnn -смещение
SELECT RETURN S=x, где x количество готовых дескрипторов возвращаемых вызовом select(). Если S=0 - закончен временной лимит.
TIME INTERVAL (W) Время выполнения системного вызова. Если после времени указана W - это означает что во время вызова файл был занят. В этом случае время ожидания включается во время выполнения вызова
PROCESS NAME Имя процесса. В расширенном режиме через точку будет добавлен ID процесса, например Mail.8871

Примеры:

fs_usage -w -f filesys Finder

fs_usage -выведет на экран все действия связанные работой с файловой системой процесса с названием Finder. Режим вывода максимальный.

Связанные команды:

top - Отображение информации о процессах в Mac OS X.
vm_stat -Получить информацию об использовании оперативной памяти.
ps - показать информацию о процессах в системе
opensnoop - Отслеживать открытие файлов.

Весь список команд terminal Mac OS X