диагностика

Днес ще говорим за събиране на диагностика в macOS

Съдържание

  • Информация за компютри и програми
  • Справочна услуга
  • Кеш на Directory Services и потребителски списък
  • Ние четем и (не) нулираме стойността в NVRAM
  • RAM статистика
  • Нулиране на кеша на диска в паметта
  • Проследяване на достъпа до файловата система
  • Информация за компютри и програми

    Ако изберете „About This Mac“ в менюто „Apple“ и след това щракнете върху бутона „System Report“, ще видите много информация за компютъра. Е, помощната програма system_profiler е същото нещо, но сто пъти повече.

    Ако извикате system_profiler без параметри, информацията ще се покаже цялата, което в моя случай означава 3,8 Mbytes текст. Затова препоръчвам веднага да напишете нещо като system_profiler > ~/Desktop/profile.txt или използвайте grep, за да намерите реда, който искате.

    macos
    MAC диагностика

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

    Ако не се интересувате от всичко това, напишете system_profiler -detailLevel mini и тогава ще получите само информация за компютъра.

    Можете също така да добавите параметъра -xml, за да улесните обработката на получената информация в скрипта.

    Справочна услуга

    Комуникацията с директорийната услуга се управлява от помощната програма dscl — Directory Services Command Line, която навремето замени netinfo. Уморихте ли се от трикове на системния администратор? Така е и няма да се спираме подробно на тях.

    Няколко команди за зареждане: dscl. -list /Users ще изброи всички потребители и dscl. -чете /Потребители/ —информация за потребителя под формата на XML. Дори файлът на аватара е кодиран вътре!

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

    Кеш на Directory Services и потребителски списък

    Друга помощна програма е добавена към dscl - dscacheutil, тя отговаря за работата с кеша на директорийните услуги. Вероятно го познавате много по-добре от dscl, защото дълго време той беше този, който трябваше да стартирате, за да изчистите DNS кеша.

    Между другото, в най-новите версии на macOS това не работи и вместо dscacheutil -flushcache, сега трябва да напишете killall -HUP mDNSResponder.

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

    Що се отнася до dscacheutil, удобно е да го използвате за показване на списък с потребители: dscacheutil -q потребител. За разлика от това, което произвежда dscl, резултатът е много по-лесен за възприемане.

    Ние четем и (не) нулираме стойността в NVRAM

    Всеки "Mac" има енергонезависима памет, която съхранява променливи, важни за работата на компютъра. Какво точно се крие там? Командата nvram ще ви помогне да разберете: напишете nvram -xp и ще видите всичко.

    Има както безобидни неща като нивото на звука и най-новата подредба на клавиатурата, така и по-интересни примери за ключа Find My Mac и напълно мистериозни EFI параметри.

    Всички те са представени в двоична форма и единственият фрагмент от описанието, който успях да намеря, е в изтекъл документ на ЦРУ, публикуван в WikiLeaks.

    Опциите могат да бъдат зададени с командата nvram =, премахнати с командата nvram -d или заредени от файл с nvram -f.

    Можете да нулирате всичко, като напишете nvram -c. Но обикновено параметрите на NVRAM се нулират само ако нещо се обърка и компютърът не се стартира. Затрябва да натиснете Alt-Cmd-P-R веднага след включване и задръжте за 20 секунди.

    Моля, обърнете внимание: ако промените параметрите с помощната програма nvram, те няма да бъдат записани незабавно в енергонезависимата памет, а само когато компютърът е изключен в нормален режим.

    RAM статистика

    Има много начини да видите колко RAM се използва. Може би най-лесно е да отворите секцията "Памет" в "Системно наблюдение": там най-полезните параметри са представени във визуална форма. От командния ред е най-добре да използвате top.

    Ако имате нужда от най-подробната информация, тогава можете да се обърнете към vm_stat. Недостатъкът на тази помощна програма е, че всички стойности са дадени в страници, равни на 4 KB. Изброяването обаче не е толкова трудно, а и в интернет има много скриптове - например този едноредов в Perl изброява всички мегабайти.

    Можете също да използвате vm_stat, за да наблюдавате промените в използването на паметта с течение на времето. За да направите това, въведете vm_stat -c , където първият параметър е броят на измерванията, а вторият е интервалът между тях.

    Нулиране на кеша на диска в паметта

    Командата purge помага временно да получите няколко допълнителни гигабайта RAM. Извиква се от root, няма параметри и нулира кеша на диска, привеждайки го в състоянието, в което е бил след зареждане на ОС. Но обикновено мениджърът на паметта не се нуждае от такава помощ - той постепенно сам ще разтовари излишъка, ако RAM свърши.

    В помощта те казват, че прочистването обикновено е необходимо главно за тестване, но кой знае как ще се върне животът?

    Проследяване на достъпа до файловата система

    Командата fs_usage, стартирана без параметри от root, отпечатва запис за всеки достъп до файловата система. Необходимо е в случаите, когато имапрограмата се срива при стартиране или дава загадъчни съобщения за грешка. Ако проблемът е, че един от файловете е повреден, тогава можете да го намерите с fs_usage.

    За да имате по-малко ровене в проблема, ограничете съобщението до един процес, като напишете името му след fs_usage. Ако знаете ID, въведете sudo fs_usage pid.

    Друга полезна опция е -f, след нея можете да зададете филтър за операции с мрежата (-f мрежа), с файлове (-f пътека ще добави колона с пътя) и т.н. Ако текстът не се побира на реда, добавете -w.

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