Bashコマンドプロンプトに埋め込まれたCPU温度


18

CPU温度を取得し、それをコマンドプロンプトに埋め込むことができるかどうか疑問に思いました。

これは私の出力ですsensors

$}-sensors
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +55.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +55.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +52.0°C  (high = +87.0°C, crit = +105.0°C)

このgrep機能を使用して温度をコマンドプロンプトに埋め込む方法を教えてください。



qucik:cat / sys / class / thermal / thermal_zone0 / temp、私にとっては、温度が50°Cのとき50000を示しています
mondjunge

@mondjungeこれらのファイルはハードウェアに大きく依存しています。名前とパスは、使用しているハードウェアに応じて変わります。私のシステムでは、そのファイルはacpitz-virtual-0仮想デバイスの温度を示しており、CPUの温度とは大きく異なります。
テルドン

私の答えにあるのと同じコードを使用できます。sensors出力に対しても機能します。
テルドン

@terdon:私は知っていますが、説明する時間がありません。無料の5分間で重複した質問にマークを付け、簡単な解決策を提案しようとしています。
mondjunge

回答:


36

はい、可能ですが、詳細はシステムによって異なります。ほとんどの場合、コマンドsensorsはそれを表示する必要があります。

  1. 必要なパッケージをインストールする

    sudo apt-get install lm-sensors
  2. 実行sensors-detectしてプロンプトに従います

    sudo sensors-detect
  3. sensors-detect指示された場合は、追加のドライバーをインストールします。

  4. 実行sensorsして動作することを確認します

    $ sensors
    acpitz-virtual-0
    Adapter: Virtual device
    temp1:        +27.8°C  (crit = +110.0°C)
    temp2:        +29.8°C  (crit = +110.0°C)
    
    coretemp-isa-0000
    Adapter: ISA adapter
    Physical id 0:  +63.0°C  (high = +105.0°C, crit = +105.0°C)
    Core 0:         +62.0°C  (high = +105.0°C, crit = +105.0°C)
    Core 1:         +63.0°C  (high = +105.0°C, crit = +105.0°C)
    
    nct6776-isa-0a00
    Adapter: ISA adapter
    Vcore:                  +1.86 V  (min =  +0.00 V, max =  +1.74 V)  ALARM
    in1:                    +1.36 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    AVCC:                   +3.33 V  (min =  +2.98 V, max =  +3.63 V)
    +3.3V:                  +3.33 V  (min =  +2.98 V, max =  +3.63 V)
    in4:                    +1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    in5:                    +0.00 V  (min =  +0.00 V, max =  +0.00 V)
    in6:                    +0.21 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    3VSB:                   +3.31 V  (min =  +2.98 V, max =  +3.63 V)
    Vbat:                   +3.18 V  (min =  +2.70 V, max =  +3.63 V)
    fan1:                     0 RPM  (min =    0 RPM)
    fan2:                  3292 RPM  (min =    0 RPM)
    SYSTIN:                  +0.0°C  (high =  +0.0°C, hyst =  +0.0°C)  sensor = thermistor
    CPUTIN:                 +51.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
    AUXTIN:                  +0.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
    PCH_CHIP_CPU_MAX_TEMP:  +58.0°C  (high = +80.0°C, hyst = +75.0°C)
    PECI Agent 0:           +60.0°C  (high = +80.0°C, hyst = +75.0°C)
                                     (crit = +105.0°C)
    PCH_CHIP_TEMP:           +0.0°C  
    PCH_CPU_TEMP:            +0.0°C  
    intrusion0:            OK
    intrusion1:            OK
    beep_enable:           disabled
  5. 出力を解析して、CPU温度のみを取得します。

    上記のように、私のシステムの出力はあなたのものとは異なります。ただし、ここで注意する行は同じです。CPU温度は次の方法で取得できます。

    $ sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    63.0
  6. ~/.bashrc(または別のシェルを使用している場合は同等のファイル)を編集し、上記のコマンドを実行する関数を追加します。

    show_temp(){
        sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    }
  7. プロンプトで関数を使用します。例えば:

    PS1="\u@\h $(show_temp) $ "

Ubuntuにlm-sensorsをインストールするのに本当に必要ですか?Debianにはデフォルトでインストールされます。
-Braiam

1
@Braiam 15.10または16.04では、デフォルトではインストールされません。

1

lm-sensorsをインストールします。

sudo apt-get install lm-sensors

使用可能なセンサーを検出します。

sudo sensors-detect

温度を表示するには:

sensors

5
私は質問を理解しているので、OPはBashプロンプトにCPU温度を表示することを望んでいますusername@hostname (cputemp): /current/directory $-彼らはすでにsensorsコマンドの一般的な実行方法を知っていますが、そうでなければ質問の出力をどのように表示できましたか?
バイトコマンダー

3
Bramの弁護の@ ByteCommander、OPはsensors元の質問に言及せず、回答の最初のリビジョンで要求した後にのみ出力を追加しました。確かに、この回答ではCPU温度のみを表示する方法もプロンプトに含める方法も説明していませんがsensors、回答を投稿するときに言及することは有用な情報でした。
テルドン

AMDシステムでは、CPU温度を取得する前にBIOSで「IOMMU」をオンにする必要がありました(MSIマザーボードとFX8300:オーバークロック設定-> CPU機能-> IOMMU、「Disabled」を「64 MB」に変更しました(唯一のその他のオプション))。
ピーターモーテンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.