2

現在、サーバーから温度情報を取得するためにlm_sensorsを使用しています。5分ごとにlm_sensorsを実行し、温度データを取得してCSVファイルに入れるcronジョブを実行したいと思います。ただし、lm_sensorsの出力を解析する方法がわかりません。Pythonまたはbashが私の最も快適な言語なので、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。そこから、センサーを毎秒監視する 1 行のスクリプトのように、スクリプトに必要な値を取得するのはかなり簡単なはずです。

#!/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 に答える