ubuntuusers.de

Conky zeigt mir keine Execgraph

Status: Gelöst | Ubuntu-Version: Ubuntu 14.10 (Utopic Unicorn)
Antworten |

Kaltzone

Anmeldungsdatum:
25. September 2006

Beiträge: 120

hallo

Ich bin am zweifeln und/oder sehe den Wald vor lauter Bäumen nicht.

Ich nutze Conky, habe teile davon selbst konfiguriert und angepaßt. Bisher hat alles so funktioniert wie es soll, nur verweigert sich mir jetzt eine Grafik-Darstellung der CPU-Frequenz!

Bisher hatte ich folgende funktionierende Zeilen integriert

1
2
${offset 5}${color4}${execgraph -t '/home/jens/.conky/Conky Seamod/temp-graph-cpu.sh' 40,183 100}${voffset -0}
${offset 5}${color5}${execgraph -t '/home/jens/.conky/Conky Seamod/temp-graph-gpu.sh' 40,183 100}${voffset -0}

Die sh Datei sieht dafür jeweils so bzw. so aus

1
2
3
4
5
#!/bin/sh
nvidia-settings -query GPUCoreTemp | grep 'gpu:0' | cut -c52-53

#!/bin/sh
sensors | grep  'Physical id 0' | cut -c18-21

Beide funktionieren auch, wenn ich sie im Terminal ausführe → der jeweilige Wert wird ausgelesen und Conky kan entsprechend der Werte den Graphen zeichnen!

Nun wollte ich das selbe für die aktuelle Taktfrequenz machen. Dafür habe ich wiederum ein Script erstellt, welches im Terminal die aktuellen MHz anzeigt. Soweit also korrekt! In Conky hab ich nun die notwendige Zeile zum Aufruf des Scrips eingebaut.Allerdings wird dadurch kein Graph angezeigt, sondern lediglich die ZAHL.

1
${offset 5}${color5}${execgraph -t '/home/jens/.conky/Conky Seamod/takt-graph-cpu.sh' 40,183 100}${voffset -0}

Allerdings wird dadurch kein Graph angezeigt, sondern lediglich die ZAHL. Ich sehe in meiner Codefolge aber auch keinen Fehler (oder ich bin eben blind), ich hab mit Copy und Paste die Zeile von den Temperturen kopiert und dann den Pfad zum Script geändert. Da mir Conky ja die Zahl statt Graph anzeigt ist die Einbindung ja auch richtig, nur eben die Graphik wird nicht erstellt *sichwundert*

Weiß jemand Rat oder sieht den Fehler?

Anbei noch das Bild im Anhang: über dem blauen Graphen sollte statt der 4216 eigentlich der Graph erscheinen, tut es aber nicht :O(

Gruß Kaltzone

Bilder

Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6172

Kaltzone schrieb:

Nun wollte ich das selbe für die aktuelle Taktfrequenz machen. Dafür habe ich wiederum ein Script erstellt, welches im Terminal die aktuellen MHz anzeigt. Soweit also korrekt!

über dem blauen Graphen sollte statt der 4216 eigentlich der Graph erscheinen, tut es aber nicht :O(

http://conky.sourceforge.net/variables.html

Der Wert muss zwischen 0 und 100 liegen! Sonst wird kein Graph angezeigt. Also entsprechend umrechnen in Deinem Script.

Kaltzone

(Themenstarter)

Anmeldungsdatum:
25. September 2006

Beiträge: 120

okay - Danke

das hab ich überlesen.

Dann die Frage... mein 4200 durch 100 geteilt! Wie mach ich das?

hab von hier http://openbook.rheinwerk-verlag.de/linux/linux_kap11_003.html gerade alles durchprobiert, aber meine Versuche enden immer mit Fehler in Zeile XY ... Pfad nicht gefunden weil hinter / wohl ein Pfad erwartet wird, oder mit Kommando nicht gefunden :O(

1
2
3
4
#!/bin/bash
a=lscpu |grep "CPU MHz" | cut -c24-27
$ z=$[$a/100]
echo $z

oder hiermit bekomme ich als Ausgabe "/100" oder einen Syntax-Fehler, jenachdem ob ich irgendwo Leerzeichen einfüge oder nicht.

1
2
3
#!/bin/bash
Wert=lscpu |grep "CPU MHz" | cut -c24-27
expr $Wert / 100

ich bin ratlos - wie rechne ich das?

Gruß kaltzone

xubuntufriese

Avatar von xubuntufriese

Anmeldungsdatum:
3. Mai 2014

Beiträge: 340

$ x=$((4200/100));echo $x
42

In doppelten runden Klammern wird gerechnet.

Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6172

Ähmm.. neben den doppelten Klammern: Dreisatz vergessen?

Kaltzone

(Themenstarter)

Anmeldungsdatum:
25. September 2006

Beiträge: 120

immer noch sorry

mit

1
2
3
#!/bin/bash
a=lscpu |grep "CPU MHz" | cut -c24-27
x=$((a/100));echo $x

bekomme ich folgende Ausgabe:

1
2
jens@jens-Desktop:~$ '/home/jens/.conky/Conky Seamod/takt-graph-cpu.sh' 
0

mein Wert "a" ist also falsch eingebunden, weil alle Werte meiner CPU zwischen 800 und 4400 MhZ liegen, müsste also als Ergebnis 8 - 44 raus kommen und eben nicht NULL. Aber die Rechnung schein so zu funktionieren bzw. verursacht sie so keinen Syntaxfehler. Wenn ich meines Wissens nach "a" korrekt einbinde als $a also so:

1
2
3
#!/bin/bash
a=lscpu |grep "CPU MHz" | cut -c24-27
x=$(($a/100));echo $x

dann erscheint folgender Fehler:

1
2
jens@jens-Desktop:~$ '/home/jens/.conky/Conky Seamod/takt-graph-cpu.sh' 
/home/jens/.conky/Conky Seamod/takt-graph-cpu.sh: Zeile 3: /100: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist »/100«)

Also woran liegts?

@ Bleys: Das mit dem Dreisatz rechne ich dann gern um wenn die Grundrechnung funktioniert. Du meinst die maximalen 4400Mh entspricht die 100 der ecexgraph / die aktuelle MHz dann y, so dass sich skalierte Werte zwischen 0 und 100 habe! Gute Idee - ich hatte bisher nur im Blick, dass ich mit geteilt durch Hundert werte zwischen 8 und 44 erghalte, welche ja dann logischerweise zwischen 0 und 100 liegen!

gruß Kaltzone

Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6172

Kaltzone schrieb:

1
a=lscpu |grep "CPU MHz" | cut -c24-27

So geht es:

1
a=$(lscpu |grep "CPU MHz" | cut -c24-27)

ohne die $Klammerung bleibt a leer

xubuntufriese

Avatar von xubuntufriese

Anmeldungsdatum:
3. Mai 2014

Beiträge: 340

Kaltzone schrieb:

1
2
3
#!/bin/bash
a=lscpu |grep "CPU MHz" | cut -c24-27
x=$((a/100));echo $x

a ist garnichts

a=$(lscpu |grep "CPU MHz" | cut -c24-27); echo $a

Kaltzone

(Themenstarter)

Anmeldungsdatum:
25. September 2006

Beiträge: 120

1000 Dank jetzt läufts!

Antworten |