Используя терминал, чтобы получить текущую скорость вентилятора?


27

Я хотел бы просмотреть текущие скорости вентиляторов моего MacBook и iMac с помощью терминала. Я обнаружил , что работает , spindumpто cat /tmp/spindump.txt | grep "Fan speed"это покажет, но это очень медленно и интенсивно использует процессор. Я хотел бы более быстрый и эффективный способ сделать это.

Я бы предпочел не устанавливать стороннее программное обеспечение, но я сделаю это, если это единственный способ.

Кто-нибудь есть какие-либо предложения о том, как я мог бы сделать это?

Благодарность


2
Дело в том, что с Mavericks Apple не предоставляет способ запрашивать информацию, управляемую SMC. Таким образом, лучшим способом было бы использовать smcFanControl, который на самом деле намного больше, чем просто элемент управления fac.
— Макс Райд

1
Я использую smcFanControl, но есть ли способ получить доступ к его информации с терминала? Это то, что меня больше всего интересует.
— Джозеф

Вы можете использовать инструмент smcкомандной строки smcFanControl, чтобы получить скорость вентилятора; github.com/hholtmann/smcFanControl/tree/master/smc-command
— Грэм Милн

Вы почти там. У spindump есть manpage ( man spindump), и вы можете установить время, необходимое для его запуска. Ответ ниже.
— Кузен Кокаин

Ответы:


22

smcFanControl

Вы упоминаете в своих комментариях, что установлен smcFanControl ; Этот проект с открытым исходным кодом включает в себя инструмент командной строки smc. Вы можете использовать smcдля получения информации о скорости вращения вентилятора через Terminal.app:

smc -f

Смотрите страницу руководства smc для большего количества опций.

Начиная с Mac OS X 10.5, вам нужно использовать стороннее программное обеспечение для доступа к информации о скорости вращения вентилятора. Похоже, никакой инструмент, установленный по умолчанию в OS X, предоставляет эту информацию через терминал.

Проект с открытым исходным кодом Fan Control включает в себя инструмент командной строки, который предоставляет информацию о скорости вентилятора. В этой статье OS X: текущая температура процессора в командной строке рассказывается о проекте и о том, как извлечь скорость вентилятора:

smc -k TC0D -r | sed 's/.*bytes \(.*\))/\1/' |sed 's/\([0-9a-fA-F]*\)/0x\1/g' | perl -ne 'chomp; ($low,$high) = split(/ /); print (((hex($low)*256)+hex($high))/4/64); print "C\n";'

Избегайте спиндумп

spindumpтребует прав администратора и при запуске вручную spindump пробует стеки пользователей и ядра для каждого процесса в системе. Это вычислительно дорогой процесс, даже если он выполняется в течение одной секунды.

альтернативы

Существуют другие инструменты и приложения, включая температурный монитор . См. Могу ли я узнать температуру процессора и скорость вращения вентилятора из командной строки в OS X?

Pre-Mac OS X 10.5

В этой статье, чтобы получить информацию о датчиках , показано, как использовать ioregдля извлечения информации о скорости вентилятора:

ioreg -c IOHWSensor | grep -B3 -A11 '"type" = "fanspeed"'

Приведенная выше статья и содержащийся в ней скрипт были разработаны для Mac OS X 10.4.3.

Смотрите также:


1
Монитор температуры Bresink (который я использую) бесплатен для считывания температуры, но ему нужна лицензия для считывания других датчиков (например, скорости вращения вентилятора).
— Гилби

Это хорошо, но работает только через командную строку, чтобы найти приложение перейдите по cd /Applications/smcFanControl.app/Contents/Resources/
— адресу

3
brew install Caskroom/cask/smcfancontrolи для его использования также требуется пароль.
— Накилон

7

Oneliner - выдает результат через 1 секунду, используя спиндумп

SD=~/.spindump.txt;sudo rm $SD;sudo spindump 1 1 -file "$SD" ;grep "Fan speed" $SD

Каждая отдельная часть объясняется:

SD=~/.spindump.txt: создать переменную с журналом .spindump.txt

sudo rm $SD: очистите ваш tmp файл, используя права sudo, так как файл был создан sudo spindump.

sudo spindump 1 1 -file $SD: запустите spindump от имени root (он запускается только от имени root) в течение 1 секунды с интервалом в 1 и выведите файл на ваш $ SD

grep "Fan speed" $SD: получить строку с надписью «Скорость вентилятора»

Очень жаль, что нам нужны права sudo для запуска этого скрипта.


> SD=~/.spindump.txt;sudo rm $SD;sudo spindump 1 1 -file "$SD" ;grep "Fan speed" $SD

Password:
Sampling all processes for 1 seconds with 10 milliseconds of run time between samples
Focusing on launchd [1]
Sampling completed, processing symbols...
Spindump analysis written to file /Users/CousinCocaine/.spindump.txt
Fan speed:       2302 rpm

Я использую 10.8.5 на iMac, и в моем отчете о спиндумпе не упоминается «Скорость вентилятора» или даже «Вентилятор».
— Аайдан

Я бегу 10.9.1. Я не могу найти свою «версию» spindump, но моя скорость вентилятора находится в первых 20 строках.
— двоюродный брат Кокаин

ты на ноутбуке или на рабочем столе?
— aaaidan

@aaaidan Я использую Mac Mini (аппаратная модель: Macmini5,3) и сетчатку MBP (аппаратная модель: MacBookPro11,1). Оба имеют переменную «Скорость вентилятора» на своем выходе.
— двоюродный брат Кокаин

1
Не нахожу это надежным. на моем Macbook я должен вынуть сенсорную часть, чтобы она работала, но тогда rm не работает. Также, если я бегу: sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txtодна попытка работает, следующая попытка не работает
— markhunte

6

На Мохаве, spindump, похоже, не перечисляет скорость вращения вентилятора. Заметил, что powermetrics делает, хотя. Попробуйте бежать, sudo powermetrics | grep Fanесли вы находитесь на Мохаве.


Я только попробовал, но не получил никакого вывода относительно скорости вращения вентилятора, также страница руководства ничего не указывает. Как именно это работает на вашем Mac?
— холме

Powermetrics действительно занимает несколько секунд, чтобы сгенерировать скорость вращения вентилятора, поэтому дайте ему поработать, пока он не выполнит выборку SMC. На странице руководства для powermetrics в 10.14.4 я вижу следующее в разделе «Описание вывода»: «SMC: сэмплер smc отображает информацию, предоставляемую контроллером управления системой. На поддерживаемых платформах это включает скорость вращения вентилятора и информацию от различных датчиков температуры «. Моя система - MacBook Pro15,18.
— Супергиш

Ах, по какой-то причине он не может прочитать значения SMC на моем Mac Mini ( unable to get smc values).
— холме

2

Поэтому я недавно проверил возможные команды с терминала (удерживайте esc до появления приглашения на терминале) и нашел команду, которая может проверять скорость вращения вентилятора. Тепловой уровень ЦП и т. Д., И это команда "powermetrics", и для этого требуется sudo. Если вам нужна только скорость вращения вентилятора, вы можете включить опцию smapling, например, "powermetrics -s smc". Обновление происходит медленно, но его можно изменить с помощью параметра -i и указать время в миллисекундах.


0

У меня есть MBA с проблемами SMC, и это приложение решает мою проблему. SmcFanControl не работает для меня, и я тоже попробовал FanControl. В GNU / Linux я могу установить значения max и min через терминал, поэтому, если я могу в GNU / Linux, я должен сделать то же самое в системе Unix. Это приложение Macs Fan Control https://github.com/crystalidea/macs-fan-control/releases/download/v1.4.12/macsfancontrol.zip

Я надеюсь, что работа для вас тоже


-5

Тройной щелчок по следующему, скопируйте его и вставьте в терминал:

sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txt;sudo rm /tmp/spindump.txt

Он должен выводить скорость вращения вентилятора.


3
В вопросе он говорит, что не хочет делать именно эту вещь.
— Прожектор

3
Плюс на этот вопрос был дан полный ответ в прошлом году.
— Иосиф

Я хотел бы добавить свой голос в @ Spotlight's.
— DA Винсент

2
@Greg - Добро пожаловать, чтобы спросить другого. Сообщество может показаться здесь немного жестоким, что может быть немного неприятно для новых пользователей, таких как вы. Я приветствую ваше стремление внести свой вклад и хотел бы обратить ваше внимание на наш справочный центр: «Как ответить» в качестве ресурса для написания ответов, который привлечет внимание и количество голосов. Не позволяйте отрицательным голосам за ваш первый ответ отговорить вас от участия в будущем.
— Аллан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.