2

目前我正在使用 lm_sensors 从我的服务器获取温度信息。我想运行一个每五分钟运行一次 lm_sensors 的 cron 作业,获取温度数据并将其放入 CSV 文件中。但是,我不知道如何解析 lm_sensors 输出。我想用 Python 或 bash 来解析它,因为它们是我最舒服的语言。我将把 lm_sensors 命令的当前输出作为示例粘贴到我正在使用的数据中。如果有人能指出我如何剥离数据的正确方向,我可以从那里找出其余的。谢谢您的帮助。

示例输出:

$ sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +0.0°C  (high = +70.0°C, crit = +90.0°C)


atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:       +1.42 V  (min =  +0.85 V, max =  +1.70 V)
+3.3 Voltage:       +3.38 V  (min =  +2.97 V, max =  +3.63 V)
+5 Voltage:         +4.95 V  (min =  +4.50 V, max =  +5.50 V)
+12 Voltage:       +12.48 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:      1510 RPM  (min =  600 RPM)
CHASSIS FAN Speed:  1683 RPM  (min =  600 RPM)
CPU Temperature:     +37.0°C  (high = +60.0°C, crit = +95.0°C)
MB Temperature:      +25.0°C  (high = +45.0°C, crit = +75.0°C)
4

3 回答 3

3

如果您想使用 Python,请使用PySensors,但不要重新发明轮子。设置任意数量的监控系统,如cactimunin完成。

于 2013-02-10T07:23:54.650 回答
2

使用 -u 开关运行传感器以获取原始输出。你会得到是这样的:

    Adapter: PCI adapter
power1:
  power1_input: 21.950
  power1_crit: 124.947

f71889a-isa-0480
Adapter: ISA adapter
+3.3V:
  in0_input: 3.264
in1:
  in1_input: 0.968
  in1_max: 2.040

如您所见,硬件传感器返回的实际值将由格式为 的字符串标记sensor_input。从那以后,将您想要的值放入脚本中应该相当容易,就像我每秒监控传感器的单行脚本一样:

#!/bin/sh
watch -n 1 "sensors -u | sed -n 's/_input//p'"
于 2015-08-13T04:08:51.957 回答
0

grep只获取您想要的行,然后cut获取您需要的字段。

或者一个简单的awk脚本。

于 2013-02-10T07:22:28.527 回答