使用终端获取当前的风扇速度?


27

我想查看使用终端的MacBook和iMac的当前风扇速度。我发现运行spindump然后cat /tmp/spindump.txt | grep "Fan speed"会显示它,但这非常慢并且处理器密集。我想要一种更快,更有效的方法。

我宁愿不安装第三方软件,但如果这是唯一的方法,我会的。

有没有人对我如何做到这一点有任何建议?

谢谢


2
从小牛队开始,Apple没有提供查询SMC管理信息的方法。因此,最好的方法是使用smcFanControl,这实际上不仅仅是一个fac控件。
Max Ried 2014年

1
我使用smcFanControl,但是有没有办法从终端访问它的信息?这就是我最感兴趣的事情。
约瑟夫

您可以使用smcFanControl的smc命令行工具来获取风扇速度; github.com/hholtmann/smcFanControl/tree/master/smc-command
Graham Miln

你快到了。spindump有一个manpage(man spindump),你可以设置它需要运行的时间。答案如下。
CousinCocaine 2014年

Answers:


22

smcFanControl

你在评论中提到安装了smcFanControl ; 这个开源项目包括命令行工具smc。您可以smc通过Terminal.app获取风扇速度信息:

smc -f

有关更多选项,请参见smc手册页

从Mac OS X 10.5开始,您需要使用第三方软件来访问风扇速度信息。在OS X上默认安装的工具似乎没有通过终端公开此信息。

开源项目风扇控制包括一个提供风扇速度信息的命令行工具。本文,OS X:命令行上的当前CPU温度,讨论项目以及如何提取风扇速度:

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需要管理员权限,并且在手动运行时,spindump会为系统中的每个进程采样用户和内核堆栈。这是一个计算成本很高的过程,即使运行一秒钟也是如此。

备择方案

存在其他工具和应用,包括温度监控器。请参阅OS X中的命令行可以获取CPU温度和风扇速度吗?

Mac OS X 10.5之前版本

本文获取传感器信息,显示如何使用以下ioreg方法提取风扇速度信息:

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

上面的文章和它包含的脚本是为Mac OS X 10.4.3设计的。

也可以看看:


1
Bresink的温度监控器(我使用的)可以自由读取温度,但需要许可证才能读取其他传感器(例如风扇速度)。
Gilby 2014年

它很好,但只能通过命令行工作,找到应用程序去:cd /Applications/smcFanControl.app/Contents/Resources/
dr.dimitru 2015年

3
brew install Caskroom/cask/smcfancontrol并使用它也需要密码。
Nakilon 2015年

7

Oneliner - 使用spindump在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:使用sudo权限清理您的tmp文件,因为该文件是由sudo spindump创建的。

sudo spindump 1 1 -file $SD:以root身份运行spindump(它只以root身份运行),持续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

我在iMac上运行10.8.5并且我的spindump报告中没有提到“风扇速度”甚至“粉丝”。
aaaidan 2014年

我正在运行10.9.1。我找不到我的'版本'的spindump,但我的粉丝速度在前20行。
CousinCocaine 2014年

你在笔记本电脑或台式机上吗?
aaaidan 2014年

@aaaidan我正在运行Mac Mini(硬件型号:Macmini5,3)和MBP视网膜(硬件型号:MacBookPro11,1)。两者的输出都有变量“Fan speed”。
CousinCocaine 2014年

1
找不到这个可靠的。在我的Macbook上,我必须取出Touch部分才能工作但是rm不起作用。此外,如果我运行:sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txt一次尝试它的工作接下来尝试它没有
markhunte 2014年

3

在Mojave上,spindump似乎没有列出风扇速度。但是,注意到powermetrics确实如此。sudo powermetrics | grep Fan如果你在莫哈韦,请尝试跑步。


我刚试过,但没有得到任何关于风扇速度的输出,手册页也没有任何表示。这在你的Mac上究竟是如何工作的?
nohillside

powermetrics确实需要几秒钟来生成风扇速度,所以让它运行直到它对SMC进行采样。在10.14.4的powermetrics手册页中,我在输出描述部分下面看到以下内容:“SMC:smc采样器显示系统管理控制器提供的信息。在支持的平台上,这包括风扇速度和各种温度传感器的信息“。我的系统是2018年的MacBookPro15,1。
超级

啊,无论出于什么原因,它都无法在Mac Mini(unable to get smc values)上读取SMC值。
nohillside

1

所以我最近检查了终端可能的命令(保持esc直到终端提示),我发现了一个可以检查风扇速度CPU热量等级的命令,命令是“powermetrics”,它需要sudo来做。如果你只需要风扇速度,你可以包括一个像“powermetrics -s smc”这样的smapling选项。它确实更新缓慢,但可以使用-i选项进行更改,并包含以毫秒为单位的时间。



-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
在这个问题上,他说他不想做这件事。
Spotlight 2015年

3
此外,问题在去年得到了充分回答。
约瑟夫

我想把我的声音添加到@ Spotlight's。
DA Vincent

2
@Greg - 欢迎提出不同的问题。社区似乎在这里有点残酷,有时这可能是有点过了把新的用户,如自己。我赞赏你的贡献,并希望指向我们的帮助中心:如何回答作为撰写答案的资源,这将吸引观点和投票。不要让你的第一个答案的反对票阻止你将来做出贡献。
Allan

-5

您可以进入终端并输入“sudo_wudo”这将打开一个监视计算机不同进程的文件夹。“wudo”应该为您带来气流和压力,您可以通过菜单向您显示终端的气流。这对我很有用,我希望你也喜欢它!


3
-bash: sudo_wudo: command not found。同样的问题sudo wudo,这是一个需要先安装的命令吗?
nohillside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.