• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]/proc/cpuinfo bestimmten wert auslesen

Piloboy

Member
Ich möchte mir für Munin ein eigens Plugin schreiben, das mir die CPU Frequenz anzeigt.

Hierzu möchte via der Bash die Prozessor-Frequenz aus /proc/cpuinfinfo ermitteln.
Wie kann ich dies anstellen, bzw. welche Tools helfen mir da

Code:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 55
model name      : AMD Athlon(tm) 64 Processor 3700+
stepping        : 2
cpu MHz         : 2758.797
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp
bogomips        : 5519.04

Mit grep funtioniert das irgendwie so nicht, da ich immer die ganze Zeile der Frequenz bekomme, benötige aber nur den Wert.

Für eine kleine Hilfestellung bin ich dankbar.

P.S.
Falls jemand solch ein Plugin für Munin kennt, bitte ein Link, danke.
 
OP
P

Piloboy

Member
Damit geht es so auch nicht.
Der sucht bei dir nach einen Wert von "cpu[0-9]", mit der Option -c gibt er dann die Gesamtanzahl der gefunden Stellen wieder.
 
OP
P

Piloboy

Member
Nach weiterem Suchen bin ich auf awk gestossen, wieso kannt ich dies noch nicht :roll: , jedenfalls gibt mir folgender Befehl

Code:
grep 'cpu MHz' /proc/cpuinfo | awk -F : '{print $2}'

das aus

Code:
 2758.797

Soweit schon gut, bloss wird wohl das Leerzeiche vor der Zahl stören, wie könnt ich dies denn wegbekommen?

Edit:

Gelöst

Code:
piloboy@ivan ~ $ grep 'cpu MHz' /proc/cpuinfo | awk '{print $4}'
2758.797
 
OP
P

Piloboy

Member
Hier mal was zum Hintergrund

Das cpuspeed Plugin von Munin ermittelt die Taktfrequenz über das Frequenzscaling, wird dies aber im BIOS deaktiviert funktioniert das ganze natürlich nicht mehr.
Also muss was eigenes her, hier jetzt meine Lösung für Munin, ist ein abgeändertes cpuspeed Script.

Code:
#!/bin/sh
#
# Plugin to monitor CPU speed
#
# Usage: Place in /etc/munin/node.d/ (or link it there  using ln -s)
#
# Parameters understood:
#
#       config   (required)
#
#
# Magic markers - optional - used by installation scripts and
# munin-config:
#
#%# family=auto
#%# capabilities=autoconf
#

if [ "$1" = "config" ]; then
    cat <<EOF
graph_title CPU frequency scaling
graph_args --base 1000 -r --lower-limit 0
graph_vlabel Hz
graph_scale yes
graph_info This graph shows at what speeds the CPUs are running
graph_category system
EOF

for c in /sys/devices/system/cpu/cpu*; do
    N=${c##*/cpu}
    MINHZ=800000
    MAXHZ=3000000
    cat <<EOF
cpu$N.label CPU $N
cpu$N.max $MAXHZ
cpu$N.min $MINHZ
cpu$N.type GAUGE
EOF
    if [ "$scaleto100" = "yes" ]; then
        echo "cpu$N.cdef $cpu$N,$MAXHZ,/"
    fi
done

        exit 0
fi

for c in /sys/devices/system/cpu/cpu*; do
    N=${c##*/cpu}

    echo -n "cpu$N.value "; grep 'cpu MHz' /proc/cpuinfo | awk '{print $4*1000}'
done
 
Oben