[gelöst] Conky: Monatlichen Traffic anzeigen

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
geier22

[gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 09:36:03

Hallo miteinander, ich brauch mal wieder einen Tipp für meinen Conky:
Die Anzeige des monatlichen Traffics funktioniert nicht:

Für die Anzeige des Traffics stehen in meinem Conky folgenden Zeilen:

Für den täglichen Traffic:

Code: Alles auswählen

Down: ${execi 300 vnstat | grep "today" | awk '{print $2 $3}'} ${goto 265}Up: ${execi 300 vnstat | grep "today" | awk '{print $5 $6}'}
Diese Zeile funktioniert

Für den Monatlichen Traffic:

Code: Alles auswählen

Down: ${execi 300 vnstat -m | grep "`LC_ALL=C date +"%b '%y"`" | awk '{print $2 $3}'}${goto 265}Up: ${execi 300 vnstat -m | grep "`LC_ALL=C date +"%b '%y"`" | awk '{print $6 $7}'}
Diese Zeile funktioniert nicht (Leere Ausgabe)

Code: Alles auswählen

~$ vnstat -m

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      Feb '16     43,63 GiB |    1,41 GiB |   45,04 GiB |  150,79 kbit/s
      Mär '16     26,57 GiB |  748,59 MiB |   27,30 GiB |  161,76 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated     50,26 GiB |    1,38 GiB |   51,65 GiB |
Ich habe im Netz aber auch nichts anderes (Syntax) gefunden

Hab ein Paar versuche mit cut gemacht:

Code: Alles auswählen

$ vnstat -m -s
                      rx      /      tx      /     total    /   estimated
 eth0:
       Feb '16     43,63 GiB  /    1,41 GiB  /   45,04 GiB
       Mär '16     26,57 GiB  /  747,86 MiB  /   27,30 GiB  /   51,70 GiB
     yesterday    224,55 MiB  /   15,41 MiB  /  239,96 MiB
         today    148,35 MiB  /    5,30 MiB  /  153,65 MiB  /     416 MiB

Code: Alles auswählen

$ vnstat -m -s |grep "today" |cut -c 10-28
today    148,49 MiB

Code: Alles auswählen

$ LC_ALL=C date +"%b '%y"
Mar '16

Code: Alles auswählen

$ vnstat -m -s |grep "LC_ALL=C date +"%b '%y"" |cut -c 10-28
Ergibt aber keine Ausgabe

Da weder die im Netz gefundene Ausgabe mit awk noch "meine" mit cut funktioniert scheint irgendetwas mit

Code: Alles auswählen

|grep "LC_ALL=C date +"%b '%y""
icht zu stimmen - Hab aber nicht die geringste Ahnung was :evil:

Habt Ihr eine Idee, woran das Liegt ?

Eventuelle Erleuchtung: :facepalm: :facepalm:

Nachdem ich den Post abgeschickt habe, sehe ich den Unterschied:
Mär '16 ---> Mar '16
Jetzt wäre also nur noch die Frage, wie man die englische Ausgabe Mar '16 auf deutsch umstellt ???
Zuletzt geändert von geier22 am 17.03.2016 19:51:15, insgesamt 1-mal geändert.

geier22

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 11:35:25

Wenn keiner eine Idee hat, wie man die Ausgabe von

Code: Alles auswählen

LC_ALL=C date +"%b '%y"
auf deutsch umstellen kann gäbe es eventuell noch folgende Lösung:

Da der Aktuelle Monat immer bei der Ausgabe von

Code: Alles auswählen

vnstat -m -s
in der 2. Zeile gelistet ist, wäre eine Möglichkeit, mit irgend einem Befehl das Auslesen der 2. Zeile anzuweisen.

Leider steh ich da auf dem Schlauch. :x

Hab hier noch was gefunden: http://www.php-kurs.com/php-datumsausgabe-deutsch.htm

Keine Ahnung, wie man das in eine abfrage einbauen kann, vielleicht hat jemand eine Idee ?

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von NAB » 17.03.2016 13:06:50

geier22 hat geschrieben:

Code: Alles auswählen

vnstat -m -s
in der 2. Zeile gelistet ist, wäre eine Möglichkeit, mit irgend einem Befehl das Auslesen der 2. Zeile anzuweisen.
Das ist ja nicht die zweite, sondern die vierte Zeile, wenn ich richtig gezählt habe.

Code: Alles auswählen

vnstat -m -s | head -n4 | tail -1 
sollte das machen.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

geier22

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 13:36:01

Hatte aus oben Platzgründen noch eine Zeile weggenommen :facepalm: Wusste nicht, dass die Leerzeilen mitgezählt werden. Richtig:

Code: Alles auswählen

$ vnstat -m -s

                      rx      /      tx      /     total    /   estimated
 eth0:
       Feb '16     43,63 GiB  /    1,41 GiB  /   45,04 GiB
       Mär '16     28,67 GiB  /  788,68 MiB  /   29,44 GiB  /   55,12 GiB
     yesterday    224,55 MiB  /   15,41 MiB  /  239,96 MiB
         today      2,25 GiB  /   46,12 MiB  /    2,30 GiB  /    4,11 GiB

Code: Alles auswählen

hans@sparkyxfce:~$ vnstat -m -s | head -n5 | tail -1 |awk '{print $6 $7}'
793,15MiB
hans@sparkyxfce:~$ vnstat -m -s | head -n5 | tail -1 |awk '{print $3 $4}'
28,96GiB
hans@sparkyxfce:~$ 
Super :THX: :THX: bedanke mich vielmals. Werd es nachher ins Conky einbauen und berichten

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von inne » 17.03.2016 13:53:52

Die head und tail kannst du auch sparen wenn du schon awk nutzt.

awk 'NR==6 {print $3 $4}'

Das "matched" auf die 6te Zeile

geier22

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 13:59:40

inne hat geschrieben:Die head und tail kannst du auch sparen wenn du schon awk nutzt.
Klappt - Dir auch vielen Dank - Bin Halt nicht so fit, was das Terminal betrifft.
Aber man lernt durch praktische Anforderungen immer wieder etwas dazu :hail: :THX:

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von NAB » 17.03.2016 14:00:03

Und wenn du dir das awk sparen willst, kannst du auch "cut" benutzen. Du kannst mit "cut" nicht nur Buchstaben ausschneiden, sondern eine Zeile auch als Tabelle interpretieren lassen und einzelne Felder auswählen. "cut" hat nur als Voreinstellung das TAB-Zeichen, um einzelne Felder zu trennen, das kann man aber ändern.

Code: Alles auswählen

cut -d' ' -f6,7
Mit -d sagst du cut, dass du lieber das Leerzeichen als Feld-Trenner haben möchtest, genau wie awk.
Mit -f wählst du Feld 6 und 7 aus.

Das macht dann das gleiche wie dein awk. Was davon nun besser ist, darüber kann man sich streiten:)
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von inne » 17.03.2016 14:08:34

Dann braucht es aber wieder das head und tail Konstrukt. head+tail+cut ... da ist ein awk sicher eleganter. Was sagt time :-)

geier22

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 14:19:20

Ihr erschlagt mich ja :P :P
Werde ich aber alles testen.
Jetzt hab ich erst mal mein Conky "gefixt":
Der komplette Code für die Traffic -Anzeige:

Code: Alles auswählen

${alignc}${font Ubuntu Standard:style=bold:size=12}Traffic Heute${font}

Down: ${execi 300 vnstat | grep "today" | awk '{print $2 $3}'} ${goto 265}Up: ${execi 300 vnstat | grep "today" | awk '{print $5 $6}'}

${alignc}${font Ubuntu Standard:style=bold:size=12}Traffic ${time %B}:${font}

Down: ${execi 300 vnstat -m -s |awk 'NR==4 {print $3 $4}'} ${goto 265}Up: ${execi 300 vnstat -m -s |awk 'NR==4 {print $6 $7}'}
Ergibt dann wie gewünscht:
Bild

Vielen vielen Dank :THX: :THX:

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von inne » 17.03.2016 15:13:31

grep "today" | awk '{print $5 $6}'
Hier kannst du das grep auch weglassen: awk '/today/ {print $5 $6}'

geier22

Re: Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 17.03.2016 19:50:26

So ihr beiden hab jetzt alles berücksichtigt - Nochmal vielen Dank für die Tipps :THX: :THX:
Falls Interesse besteht hier das komplette File:NoPaste-Eintrag39216
Das einzige. was (noch) nicht funktioniert seit dem Board- Wechsel sind die Lüfter - Drehzahlen aber dazu hab ich im Moment keine Lust.

Bild

geier22

Re: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 24.03.2016 13:28:58

Ich will nicht extra einen neuen Thread aufmachen für dies kleine Frage :
Mir ist aufgefallen dass die Zeile

Code: Alles auswählen

${alignc} Nvidia Treiber Version: ${exec nvidia-settings -v |grep nvidia-settings: |cut -c 27-32}
nicht die Treiber-Version, sondern die version der Nvidia-Settigs wiedergibt.
da mir awk inzwischen gut gefällt (danke :hail: ) hab ich den ganzen Komplex über die Grafikkarte auf die Abfrage von Debiannvidia-smi umgestellt

Code: Alles auswählen

${alignc}${font Ubuntu Standard:style=bold:size=15}${color2} ${exec nvidia-smi -L |awk 'NR==1 {print $3$4$5$6}'}
${alignc}${font Ubuntu Standard:style=bold:size=20}${color2} Temp ${exec nvidia-smi dmon -c 1|awk 'NR==3 {print $3}'} °C
${alignc}${font}${alignc}GPU-Frq ${exec nvidia-smi dmon -c 1|awk 'NR==3 {print $8}'}MHz   Mem-Frq ${exec nvidia-smi dmon -c 1|awk 'NR==3 {print $9}'}MHz 
${alignc}Mem Used ${exec nvidia-smi |awk 'NR==9 {print $9}'} Total ${exec nvidia-smi |awk 'NR==9 {print $11}'}
# ${alignc}Mem Used ${exec nvidia-smi -q -d MEMORY | grep "FB Memory Usage" -A 3 | grep  Used | cut -c 35-45} Total ${exec nvidia-smi -q -d MEMORY | grep "FB Memory Usage" -A 3 | grep  Total | cut -c 35-46}
${alignc} ${exec nvidia-smi |awk 'NR==3 {print $4 $5 $6}'}
klappt alles wunderbar mit jedoch einem Schönheitsfehler:
nvidia-smi gibt eine solche Ausgabe:

Code: Alles auswählen

+------------------------------------------------------+                       
| NVIDIA-SMI 352.79     Driver Version: 352.79         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 750 Ti  Off  | 0000:01:00.0      On |                  N/A |
| 33%   30C    P8     1W /  46W |    185MiB /  2047MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
die Abfrage der Driver version mit

Code: Alles auswählen

awk 'NR==3 {print $4 $5 $6}'
gibt dann richtig Folgendes: DriverVersion:352.79
Der Schönheitsfehler: die Leerzeichen dazwischen sind verschwunden, und ich kann awk nicht beibringen diese zu machen. :(
gibt es dafür eine Lösung?

TomL

Re: AW: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von TomL » 24.03.2016 13:58:32

Verwende printf anstatt print.

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von MSfree » 24.03.2016 14:13:53

geier22 hat geschrieben:die Abfrage der Driver version mit

Code: Alles auswählen

awk 'NR==3 {print $4 $5 $6}'
gibt dann richtig Folgendes: DriverVersion:352.79
Der Schönheitsfehler: die Leerzeichen dazwischen sind verschwunden, und ich kann awk nicht beibringen diese zu machen. :(

Code: Alles auswählen

awk 'NR==3 {print $4" "$5" "$6}'

geier22

Re: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 24.03.2016 14:18:34

"
MSfree hat geschrieben:awk 'NR==3 {print $4" "$5" "$6}'
DAS WARS -------> Danke :THX: :THX:

TomL

Re: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von TomL » 24.03.2016 18:57:04

geier22 hat geschrieben:DAS WARS
Ich würde mir trotzdem mal printf ansehen.... das bietet tolle Möglichkeiten. Hier mal 4 einfache Beispiele:

Code: Alles auswählen

awk -F':' '{ printf "%6s   %-20s  %-10s\n\r",  $3, $1, $4}' /etc/group | sort -b -g

Code: Alles auswählen

awk -F':' '{ printf "%6s  %-18s  %10s\n\r",  $3, $1, $4}' /etc/passwd | sort -b -g

Code: Alles auswählen

du -cs -BK /usr/* | awk -F' ' '{ printf "%8.2f MB  %-s\n\r",  $1/1024, $2}'

Code: Alles auswählen

df | awk -F' ' '{ printf "%-30s   %-10s  %-s\n\r",  $1, $2, $7}' | sort -b -g

geier22

Re: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von geier22 » 24.03.2016 19:23:00

TomL hat geschrieben:df | awk -F' ' '{ printf "%-30s %-10s %-s\n\r", $1, $2, $7}' | sort -b -g
das geht aber auch einfacher : :wink:

Code: Alles auswählen

~$ df |sort |cut -c 1-26
Trotzdem interessant scheinst ja damit den Abstand zwischen der Ausgabe zu definieren -- werde ich mal mit rumspielen :THX:

TomL

Re: AW: [gelöst] Conky: Monatlichen Traffic anzeigen

Beitrag von TomL » 24.03.2016 20:09:21

Dein Beispiel hat nur den einen kleinen unbedeutenden Nachteil, dass es kein Printf verwendet.... und somit für Printf kein so gutes Beispiel ist. *lol*

Mit Printf kannst du auch zahlen formatieren, width & align festlegen und sogar eingeschränkt rechnen.

Antworten