我想将我的 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