Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Über das Element ${execi SEKUNDEN BEFEHL}
lassen sich in der Conky-Konfiguration Befehle, Skripte oder Einzeiler wiederholt ausführen, deren Ausgabe dann von Conky angezeigt wird. Conky ist dadurch leicht durch Skripte erweiterbar, von denen man viele im Netz findet, wenn man sie nicht gerade selber schreiben mag. Außerdem verfügt Conky über Lua-Unterstützung mit imlib2- und Cairo-Bindings. Beispiele für die Ergebnisse zeigt der Artikel Conky Manager.
Ein kleines Beispiel, um einen Kalender für den aktuellen Monat zu erzeugen:
${color red}Kalender ${hr 2}$color ${execpi 60 DJS=`date +%_d`; cal | sed s/"\(^\|[^0-9]\)$DJS"'\b'/'\1${color red}'"$DJS"'$color'/}}
Die Einbindung eines externen Skriptes in der Conky-Konfigurations-Datei soll im Vergleich zu einer vorhandenen Funktion dargestellt werden. Die vorhandene Funktion ist das Anzeigen der lokalen IP, das Skript gibt die öffentliche (globale) IP aus.
Zuerst wird ein Shell-Skript erstellt [1]:
1 2 3 4 5 | #!/bin/bash # eigene öffentliche ip anzeigen wget http://checkip.dyndns.org/ -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' |
Anstatt http://checkip.dyndns.org/
kann man natürlich auch
http://whatismyip.org/
http://wieistmeineip.net/
http://www.myipaddress.com/
http://wieistmeineip.de/
oder ähnliche Dienste eintragen.
Das Skript wird als ~/.conky/publicip.sh gespeichert und die Ausführung als Programm muss erlaubt werden [2]. Im TEXT
-Abschnitt der .conkyrc kann dann folgende Zeile ergänzt werden, um die lokale und globale IP anzuzeigen, wobei die globale IP alle 7200 Sekunden (zwei Stunden) ermittelt wird:
IP : Lokal: ${addr eth0} ${offset 10} Global: ${execi 7200 ~/.conky/publicip.sh}
Eine weitere Möglichkeit die öffentliche IP anzuzeigen ohne ein weiteres Skript zu erstellen ist auch vorhanden.
Im TEXT-Abschnitt der .conkyrc kann dann folgendes ergänzt werden.
IPv4:
IPv4 global: ${execi 7200 wget http://v4.ipv6-test.com/api/myip.php -q -O -}
IPv6:
IPv6 global: ${execi 7200 wget http://v6.ipv6-test.com/api/myip.php -q -O -}
Das Einbinden von vnStat ist sinnvoll, wenn man den Datenverkehr über einen bestimmten Zeitraum (Tag, Woche, Monat, Jahr) erhalten will.
Dazu installiert [1] man erst einmal das Paket
vnstat (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install vnstat
sudo aptitude install vnstat
und legt fest, welche Netzwerkschnittstelle überwacht werden soll (Näheres zur Installation/Konfiguration erfährt man im vnStat-Artikel). Die folgenden Beispiele zeigen, wie man vnStat letztendlich in die .conkyrc einbinden kann:
Für den heutigen Traffic:
Heute: Down: ${execi 300 vnstat | grep "today" | awk '{print $2 $3}'} ${alignr}Up: ${execi 300 vnstat | grep "today" | awk '{print $5 $6}'}
Für den Traffic der gesamten Woche:
Diese Woche: Down: ${execi 300 vnstat -w | grep "current week" | awk '{print $3 $4}'} ${alignr}Up: ${execi 300 vnstat -w | grep "current week" | awk '{print $6 $7}'}
Für den Traffic des gesamten Monats;
Traffic ${time %B}: Down: ${execi 300 vnstat -m | grep "`LC_ALL=C date +"%b '%y"`" | awk '{print $3 $4}'} ${alignr}Up: ${execi 300 vnstat -m | grep "`LC_ALL=C date +"%b '%y"`" | awk '{print $6 $7}'}
...und schließlich noch ein Beispiel für die Angabe des gesamten Traffics in einem Monat:
Traffic ${time %B}: ${execi 300 vnstat -m | grep "`LC_ALL=C date +"%b '%y"`" | awk '{print $9 $10}'}
Beispiel für die Ausgabe (gesamt im Monat):
Traffic November: 12,45GB
Möchte man sich die Anzahl der verfügbaren Updates anzeigen lassen, so hat man diverse Möglichkeiten dazu. Die einfachste benötigt keinerlei weitere Eingriffe ins System und ist zu bevorzugen:
${execi 1800 aptitude search "~U" | wc -l} Updates
ConkyPress - Python Skript um Wordpress Blog-Statistiken in Conky anzuzeigen
imagemagick-kalendar - Skript, das mit ImageMagick einen Monatskalendar als Bild erzeugt
Conky weather scripts - diverse Wetteranzeigen, 04/2012
Googlemail und Conky - Blogbeitrag, 03/2009
Conky Hauptartikel
Diese Revision wurde am 28. Juli 2015 11:31 von frustschieber erstellt.