Сбор диагностики в macOS с помощью командной строки

Сегодня поговорим о сборе диагностики в macOS

Еще по теме: Нужные приложения для Mac OS X

Информаци о компьютере и программах

Если в меню «Яблоко» выбрать пункт «Об этом Mac», а затем нажать на кнопку «Системный отчет», то вы увидите кучу всякой информации о компьютере. Так вот, утилита system_profiler — это то же самое, но в сто раз подробнее.

Если вызвать system_profiler без параметров, то информация будет выведена целиком, что в моем случае означает 3,8 Мбайт текста. Так что рекомендую сразу писать что-нибудь вроде system_profiler > ~/Desktop/profile.txt или использовать grep для поиска нужной строки.

диагностика mac os
Диагностика MAC

Среди того, что выплюнет system_profiler, вы найдете информацию не только о системе и устройствах, но и обо всех программах, драйверах, плагинах, библиотеках и шрифтах. Заодно будут выведены части системных логов и еще куча всякой лабуды.

Если все это вас не интересует, пишите system_profiler -detailLevel mini, и тогда получите только сведения о компьютере.

Еще можно добавить параметр -xml, чтобы было удобнее обрабатывать полученную информацию в скрипте.

Служба каталогов

За общение со службой каталогов отвечает утилита dscl — Directory Services Command Line, она в свое время пришла на смену netinfo. Повеяло сисадминскими штучками? Так и есть, и подробно останавливаться на них мы не будем.

Для затравки пара команд: dscl . -list /Users выведет список всех пользователей, а dscl . -read /Users/<имя пользователя> — информацию о пользователе в виде XML. Внутри закодирован даже файл с аватаркой!

Кстати, если запустить dscl без параметров, то она войдет в интерактивный режим, где вы сможете использовать привычные команды cd и ls для навигации, а смотреть содержимое веток — командой read.

Кеши Directory Services и список пользователей

К dscl прилагается еще одна утилитка — dscacheutil, она отвечает за работу с кешами службы каталогов. Скорее всего, она известна вам намного лучше, чем dscl, поскольку долгое время именно ее нужно было запускать для сброса кеша DNS.

Кстати, в последних версиях macOS это не работает, и вместо dscacheutil -flushcache теперь нужно писать killall -HUP mDNSResponder.

диагностика mac os
Диагностика MAC

Что до dscacheutil, то ее удобно использовать, чтобы выводить список пользователей: dscacheutil -q user. В отличие от того, что выдает dscl, результат воспринимать намного легче.

Читаем и (не) сбрасываем значения в NVRAM

У каждого «мака» есть энергонезависимая память, в которой хранятся важные для работы компьютера переменные. Что именно там лежит? Узнать поможет команда nvram: напишите nvram -xp, и все увидите.

Здесь есть как безобидные вещи вроде уровня звука и последней раскладки клавиатуры, так и более интересные вроде ключа Find My Mac и совсем уж загадочные параметры EFI.

Все они представлены в двоичном виде, и единственный обрывок описания, который мне удалось найти, содержится в утекшем и выложенном на WikiLeaks документе ЦРУ.

программы диагностики mac

Параметры можно задавать командой nvram <переменная>=<значение>, удалять командой nvram -d <переменная> или загружать из файла при помощи nvram -f <файл>.

Сбросить все можно, набрав nvram -c. Но обычно параметры NVRAM сбрасывают, только если что-то пошло не так и компьютер не загружается. Для этого нужно нажать Alt-Cmd-P-R сразу после включения и держать 20 с.

Обратите внимание: если меняете параметры утилитой nvram, то они запишутся в энергонезависимую память не моментально, а лишь при выключении компьютера в штатном режиме.

Статистика оперативной памяти

Существует масса способов посмотреть, насколько загружена оперативная память. Пожалуй, самый простой — это открыть раздел «Память» в «Мониторинге системы»: там в наглядном виде представлены самые полезные параметры. Из командной строки лучше всего использовать top.

Если же вам нужна самая подробная информация, то вы можешь обратиться к vm_stat. Недостаток этой утилиты — в том, что все значения приводятся в страницах, равных 4 Кбайт. Однако пересчитать не так сложно, и в интернете есть масса скриптов — например, вот этот однострочник на Perl пересчитывает все в мегабайты.

диагностика mac

Еще с помощью vm_stat можно отслеживать изменение загрузки памяти со временем. Для этого введите vm_stat -c <число> <секунды>, где первый параметр — количество замеров, а второй — интервал между ними.

Сброс дискового кеша в памяти

Временно получить пару лишних гигабайтов оперативной памяти помогает команда purge. Она вызывается от рута, не имеет никаких параметров и обнуляет дисковый кеш, приводя его в то состояние, в котором он был после загрузки ОС. Но обычно менеджеру памяти такая помощь не требуется — он сам постепенно выгрузит лишнее, если оперативка будет заканчиваться.

В справке говорится, что purge вообще нужен в основном для тестирования, но кто знает, как повернется жизнь?

Отслеживание обращений к файловой системе

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

Чтобы пришлось меньше рыться в выдаче, ограничь сообщения одним процессом, написав его название после fs_usage. Если знаете только ID, введите sudo fs_usage pid .

Другой полезный параметр — это -f, после него можно задать фильтр по операциям с сетью (-f network), с файлами (-f pathname добавит колонку с путем) и так далее. Если текст не влезает в строку, добавьте -w.

диагностика mac

Подробности можете посмотреть, например, в статье The Mac Observer или в статье moxit.

Еще по теме: Лучшие расширения для Mac OS X

Techgeek

Оставить отклик

Ваш адрес эл.почты не будет опубликован.