如何将我的 CPU 温度写入 Intel Mac 上的文件?

如何将我的 CPU 温度写入 Intel Mac 上的文件?

我想将我的 Mac CPU 温度记录到 Mac 终端中的磁盘文件中。我尝试过:

sudo powermetrics --samplers smc | grep -i "CPU die temperature" >> cpu_temps.txt

...和:

sudo powermetrics --samplers smc | grep -i "CPU die temperature" | sudo tee -a /Users/my_mac/temp_log.txt >/dev/null

...和:

while true
   do
   sudo powermetrics --samplers smc | grep -i "CPU die temperature" >> cpu_temps.txt
   sleep 1
done

...但输出文件中没有记录任何内容。

正确的方法是什么?

值得一提的是,这是该命令的输出:

sudo powermetrics --samplers smc | grep -i "CPU die temperature"
CPU die temperature: 78.89 C
CPU die temperature: 77.38 C
CPU die temperature: 75.99 C
CPU die temperature: 74.62 C
CPU die temperature: 73.45 C

答案1

尝试将采样率 ( -i) 设置为1ms并将采样数 ( -n) 设置为1如下:

sudo powermetrics --samplers smc -n 1 -i 1ms | grep -i "CPU die temperature" >> cpu_temps.txt

然后在你的 Bash 脚本中像这样设置它:

while true
   do
   sudo powermetrics --samplers smc -n 1 -i 1ms | grep -i "CPU die temperature" >> cpu_temps.txt
   sleep 1;
done

问题是它powermetrics不断轮询统计数据。基本上会一直轮询,直到您手动停止它Control+ C。因此,您需要更改采样率 ( -i) 和采样数 ( -n),如手册页中所述,以使其按您希望的方式运行:

-i N, --sample-rate N
        sample every N ms (0=disabled) [default: 5000ms]

-n N, --sample-count N
        Obtain N periodic samples (0=infinite) [default: 0]

因此设置-i 1ms有效地禁用powermetrics默认为 5 秒(又名:5000 毫秒)的采样率并-n 1确保powermetrics准确获取一个样本,然后停止并将其写入cpu_temps.txt

答案2

我已经建造了https://github.com/lavoiesl/osx-cpu-temp

$ ./osx-cpu-temp 
57.4 °C

相关内容