Bash komut istemine gömülü CPU sıcaklığı


18

CPU sıcaklığını elde etmenin ve komut istemine gömmenin mümkün olup olmadığını merak ediyordum.

Bu benim için çıktı 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)

grepSıcaklığı komut istemime yerleştirmek için bu işlevi nasıl kullanacağımı gösterir misiniz ?



qucik: cat / sys / class / thermal / thermal_zone0 / temp, benim için 50000 gösteriyor, sıcaklığım 50 ° C olduğunda
mondjunge

@mondjunge bu dosyalar donanıma bağımlıdır. Sahip olduğunuz donanıma bağlı olarak hem adlar hem de yollar değişecektir. Sistemimde, bu dosya acpitz-virtual-0sanal cihazın sıcaklığını gösteriyor ve bu, CPU'mun sıcaklığından çok farklı.
terdon

Cevabımdaki kodun aynısını kullanabilirsiniz. sensorsÇıktınız için de çalışır .
terdon

@terdon: Biliyorum ama açıklamak için zamanım yok, sadece ücretsiz 5 Dakikamda yinelenen soruları işaretliyorum ve hızlı bir çözüm önermeye çalışıyorum.
mondjunge

Yanıtlar:


36

Evet, mümkündür, ancak ayrıntılar sisteminize bağlıdır. Çoğu durumda, komut sensorsbunu göstermelidir.

  1. Gerekli paketi kurun

    sudo apt-get install lm-sensors
  2. İstemleri çalıştırın sensors-detectve izleyin

    sudo sensors-detect
  3. sensors-detectSize bildirirse, fazladan sürücüleri yükleyin .

  4. Çalıştığından sensorsemin olmak için koş

    $ 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. Yalnızca CPU sıcaklığını almak için çıkışı ayrıştırın.

    Yukarıda görebileceğiniz gibi, sistemimdeki çıktı sizinkinden farklı. Ancak burada önem verdiğimiz çizgi aynı. CPU sıcaklığını şu şekilde alabilirsiniz:

    $ sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    63.0
  6. Düzenleme senin ~/.bashrc(veya başka bir kabuk kullanıyorsanız eşdeğer dosyası) ve komutu yukarıda çalışan bir işlevi ekleyin:

    show_temp(){
        sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    }
  7. İstendiğinde işlevi kullanın. Örneğin:

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

Ubuntu'ya lm sensörleri kurmak gerçekten gerekli mi? Debian'a varsayılan olarak yüklenir.
Braiam

1
@Braiam Varsayılan olarak 15.10 veya 16.04 sürümlerinde yüklenmez.
kedi

1

Lm-sensörleri takın:

sudo apt-get install lm-sensors

Hangi sensörlerin mevcut olduğunu tespit edin:

sudo sensors-detect

Sıcaklığı göstermek için:

sensors

5
Soruyu anladığım gibi, OP, CPU sıcaklığının Bash isteminde görünmesini istiyor, örneğin username@hostname (cputemp): /current/directory $- sensorsGenel olarak komutun nasıl çalıştırılacağını zaten biliyorlar , aksi takdirde sorudaki çıktıyı nasıl gösterebilirlerdi?
Bayt Komutanı

3
Brate'nin savunmasında @ByteCommander, OP sensorsorijinal sorularında bahsetmedi ve çıktıyı sadece cevabımın ilk revizyonunda istediğimden sonra ekledi. Bu cevap, yalnızca CPU temp'inin nasıl gösterileceğini veya isteme nasıl dahil edileceğini açıklamıyor, ancak sensorsyanıt gönderildiğinde bahsetmek faydalı bilgilerdi.
terdon

Bir AMD sisteminde CPU sıcaklığını (FX8300 ile MSI anakartı: Overclock ayarları -> CPU Özellikleri -> IOMMU, "Devre Dışı" olarak "64 MB" olarak değiştirmeden önce "IOMMU" yu açmak zorunda kaldım diğer seçenek)).
Peter Mortensen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.