如何读取共享服务器上的CPU温度?

如何读取共享服务器上的CPU温度?

我想用 PHP 读取我的 CPU 温度,但找不到相关信息。下面的所有路径/proc/acpi/thermal_zone都显示为空。我努力了:

  • /proc/acpi/Thermal_zone/THM0/温度
  • /proc/acpi/Thermal_zone/THRM/温度
  • /proc/acpi/Thermal_zone/THR1/温度

这些(似乎)都不存在。 CPU温度监控器的正确路径是什么?

phpinfo()说:

PHP Version 5.4.12
Linux infong 2.4 #1 SMP Thu Feb 14 13:02:49 CET 2013 i686 GNU/Linux
Safe mode is off
Apache

答案1

每个内核的热区温度可从/sys/class/thermal/thermal_zone?/temp内核版本 > 3.x获取。

mt_rand()您希望使用 CPU 温度进行播种的愿望是没有意义的。根据mt_rand() 文档,在 PHP 版本 4.2.0+ 中,PRNG 的播种是自动完成的。即使您想使用手动播种mt_srand(),使用 CPU 温度来这样做是一个非常糟糕的主意。大多数 CPU 都保持相当恒定的运行温度(例如 46⁰C),而最近的英特尔“i”处理器(i3、i5、i7),核心在不需要时会简单地关闭 - 因此温度为 0。将其保留为默认值(不指定种子值)比尝试使用常量值作为 PRNG 的种子要好得多。

另外,如果您需要mt_rand()生成任何加密值,请务必阅读文档中的警告 - 它不会生成加密安全的随机数。

相关内容